Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google Firebase实时数据库和承诺_Firebase_Firebase Realtime Database_Google Cloud Functions - Fatal编程技术网

Google Firebase实时数据库和承诺

Google Firebase实时数据库和承诺,firebase,firebase-realtime-database,google-cloud-functions,Firebase,Firebase Realtime Database,Google Cloud Functions,使用Google Firebase实时数据库,似乎无法运行云功能,该功能使用同步数据访问的承诺对数据库数据执行查询和更新。 具体来说,我试图编写一个定时函数,定期运行并更新一些数据元素。 设置在的Youtube教程使用Firestore(而不是旧产品的实时数据库)作为示例。 在实时数据库中可以实现类似的功能吗?您可以使用云函数触发一个类似于cron作业的函数,该函数将使用Google Scheduler在数据库中运行更新,您可以根据需要执行更新 如以下教程所述,如果您使用firebase函数的模

使用Google Firebase实时数据库,似乎无法运行云功能,该功能使用同步数据访问的承诺对数据库数据执行查询和更新。 具体来说,我试图编写一个定时函数,定期运行并更新一些数据元素。 设置在的Youtube教程使用Firestore(而不是旧产品的实时数据库)作为示例。
在实时数据库中可以实现类似的功能吗?

您可以使用云函数触发一个类似于cron作业的函数,该函数将使用Google Scheduler在数据库中运行更新,您可以根据需要执行更新

如以下教程所述,如果您使用firebase函数的模块NodeJS 2.3.0和firebase CLI的6.7.0,则这些函数的语法非常简单

下面,这是一个使用cron语法的示例,第二个示例使用英语描述,使工作更加简单。:)

在下面的教程中,有更多关于如何通过Google Scheduler配置和使用云功能的信息


让我知道这是否对你有帮助

“使用承诺同步数据访问”是什么意思?使用Firebase Admin SDK的实时数据库更新操作肯定会返回一个承诺,指示写入何时完成,因此我不知道问题出在哪里。因此我不会直接更新。我有一个算法,需要搜索我的数据库,寻找一场比赛中排名前十的球队,然后在此基础上对这些球队做些什么。所以我需要先收集这些数据。我有一个循环通过我的数据寻找这些团队。我的问题是每个数据库读取(对于每个团队)都是一个异步调用,这意味着一旦收集了十个团队,我就不能继续使用我的算法。在实时数据库服务器端函数中,是否有方法阻止所有调用并使它们按顺序进行?使用once()进行数据库读取也会返回一个承诺。您需要使用这些电话中的承诺。没有阻塞调用,这在很大程度上是JavaScript API的标准。您将需要学习用于异步编程的JS约定和承诺,如果您了解异步/等待语法,这将非常容易。你链接到的视频教程是我制作的,它们将帮助你理解如何使用承诺。最后三个视频专门用于实时数据库,因此我了解云功能(这是问题的背景)以及如何安排它们。我的具体问题是使函数完全按顺序执行,以便同步(按顺序)执行函数中的所有数据库读取,或者我可以阻止执行,直到它们全部返回,然后继续我的逻辑流。您需要使用async/wait来实现这一点。您可以查看以下链接,以找到有关如何实现这一目标的更多信息。--
functions.pubsub.schedule('5 11 * * *').onRun((context) => {
    console.log('This will be run every day at 11:05 AM UTC!');
});
functions.pubsub.schedule('every 5 minutes').onRun((context) => {
    console.log('This will be run every 5 minutes!');
});