当前位置: 首页 > 知识库问答 >
问题:

Firebase函数错误部署计划的函数侦听器

颜新
2023-03-14
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);

var database = admin.database();
//var tarih = new Date();
var d = Date.now(); 

var userTimeZoneOffset = 3; 

var timeInRegion = new Date(d + (userTimeZoneOffset*60*60*1000));

exports.scheduledFunctionCrontab = functions.pubsub.schedule('5 11 * * *')
.timeZone('Turkey/Istanbul').onRun(async (context) => {
    var snapshot = await database.ref('Kullanicilar/{userId}/sistemdurumu').get();
    var oldDeger = snapshot.before.val();
    var newDeger = snapshot.after.val();
    
    if (newDeger > oldDeger){
      database.ref(`Kullanicilar/${Context.params.userId}/sistemdurumu1`).await().set(timeInRegion.getFullYear());
      database.ref(`Kullanicilar/${Context.params.userId}/sistemdurumu2`).await().set(timeInRegion.getMonth()+1);
      database.ref(`Kullanicilar/${Context.params.userId}/sistemdurumu3`).await().set(timeInRegion.getDate()); 
    }
  
    return null;
});

我得到的错误是部署。你能帮我做这个吗。

我正在部署功能

功能:已完成运行predeploy脚本。i函数:确保所需的API云函数。古格里皮斯。com已启用。。。i功能:确保所需的API cloudbuild。古格里皮斯。com已启用。。。函数:必需的API cloudbuild。古格里皮斯。com已启用函数:必需的API cloudfunctions。古格里皮斯。com已启用i函数:正在准备上载的函数目录。。。i函数:用于上传i pubsub的打包函数(69.93KB):确保所需的API pubsub。古格里皮斯。com已启用。。。i调度程序:确保所需的API cloudscheduler。古格里皮斯。com已启用。。。调度器:必需的API cloudscheduler。古格里皮斯。com已启用pubsub:必需的API pubsub。古格里皮斯。com已启用功能:已成功上载功能文件夹i功能:更新节点。js 14函数调度函数crontab(us-central1)。。。函数[scheduledFunctionCrontab(us-central1)]:更新操作成功。i函数:清理生成文件。。。部署函数与以下函数有错误:scheduledFunctionCrontab(us-central1)

要尝试重新部署这些函数,请运行:firebase deploy--only“functions:scheduledFunctionCrontab”

要继续部署其他功能(如数据库),请运行:firebase deploy——函数除外

错误:函数未正确部署。

共有1个答案

闻人宝
2023-03-14

正如留档中提到的,

时区的值必须是tz数据库中的时区名称。

因此,时区应该是亚洲/伊斯坦布尔,而不是土耳其/伊斯坦布尔

除此之外,数据库更新操作返回一个promise,因此您应该使用wait。如果需要,您可以在Promise.all()中同时运行它们。

exports.scheduledFunctionCrontab = functions.pubsub.schedule('5 11 * * *')
.timeZone('Asia/Istanbul').onRun(async (context) => {
           ^^^^
    var snapshot = await database.ref('Kullanicilar/{userId}/sistemdurumu').get();
    var oldDeger = snapshot.before.val();
    var newDeger = snapshot.after.val();
    
    if (newDeger > oldDeger){
      await database.ref(`Kullanicilar/${Context.params.userId}/sistemdurumu1`).set(timeInRegion.getFullYear());
      await database.ref(`Kullanicilar/${Context.params.userId}/sistemdurumu2`).set(timeInRegion.getMonth()+1);
      await database.ref(`Kullanicilar/${Context.params.userId}/sistemdurumu3`).set(timeInRegion.getDate()); 
    }
  
    return null;
});
 类似资料:
  • 我已经使用firebase云函数一段时间了,今天在代码中修复了一个小错误,在尝试部署时出现了以下错误。我取消了该更改,并尝试使用上次提交的稳定更改再次部署,但仍然是相同的错误。有什么解决办法吗?PS:这是一个typescript项目,我用tsc编译它。

  • 我在过去多次部署Firebase功能。由于某些原因,最近(大约2-3天)我经常在部署时出错。我使用windows来释放代码。当我尝试在我的Linux系统和Mac系统中设置相同的项目时,部署工作正常。从Windows环境发布可能存在的问题。 以下是部署时遇到的问题。 ! 功能[付款(us-central1)]:部署错误。加载用户代码时函数失败。这可能是由于用户代码中的错误造成的。错误消息:错误:请检

  • 我已经设置和快速服务器上运行Firebase云功能。现在,我试图使用CLI使用“Firebase部署-仅函数”将其部署到Firebase,但每次都失败,说有一个意外的令牌。我怀疑在index.js文件中使用异步箭头函数有问题,但我不确定,我也需要它们来完成我的项目。 这是索引。js文件: 以下是我在尝试运行firebase deploy(仅限函数)时遇到的错误: ==部署到“homunculus-

  • 我的包裹。json就是这样。 我的index.js是 你能告诉我密码有什么问题吗?提前谢谢。

  • 每当我运行“Firebase部署-只有函数”时,它就会出现这个错误分析函数触发器时出错。 类型错误:函数。https。onCall(…)。那么它就不是对象的函数了。(C:\Users\Lenovo\Desktop\Firebase Revision\functions\index.js:11:4)在模块中_在对象处编译(internal/modules/cjs/loader.js:1158:30)

  • 我试图为我的react本机应用程序部署一个云功能,当数据库中出现新节点时,它会向用户发送通知。为此,我使用了Expo的Push API,如下所示:https://docs . Expo . io/versions/v 32 . 0 . 0/guides/Push-notifications,并遵循以下教程:https://www.youtube.com/watch?v=R2D6J10fhA4 我已