【问题标题】:How can I just read data using the new Cloud Functions for Firebase?如何使用新的 Cloud Functions for Firebase 读取数据?
【发布时间】:2017-08-30 06:04:47
【问题描述】:

我需要通过“cron”作业读取 Firebase 实时数据库。

我分析并使用了this 存储库,但我似乎无法理解如何简单地检索实时数据库中的所有用户或所有数据的列表。 functions.database.ref 的唯一功能是onWrite,这对我没有帮助。

我知道 Cloud Functions 是面向事件的,它们是为响应某些触发器等而编写的,但就我 here 而言,这并非不可能,我们显然可以访问数据。 在他们的“删除帐户”示例中,他们使用了这个:

https://www.googleapis.com/identitytoolkit/v3/relyingparty/downloadAccount?fields=users/localId,users/lastLoginAt,nextPageToken&access_token=

而且它似乎没有记录,根本没有解释。为什么我们必须使用身份工具包?我怎么能简单地读取数据?到目前为止我一直在尝试做的事情:

  • 使用functions.database.ref('users').once('value', function(snapshot){})但没有用
  • 使用他们的 cron 作业示例代码(身份工具包),但我在来自 Firebase 的日志中得到一个非常奇怪的响应:Missing required header: Metadata-Flavor 以及下面的其余跟踪:

【问题讨论】:

    标签: firebase cron firebase-realtime-database firebase-authentication google-cloud-functions


    【解决方案1】:

    您不能使用functions.database.ref() 读取数据。这仅用于指定要更改数据库以触发函数的路径。要编写类似 cron 的函数,您不会编写数据库触发器。您可能需要一个 HTTP 触发器,如 sample code 所示。如自述文件中所述,您可以使用第三方调度程序触发 HTTP 函数。

    要在该函数中从数据库中读取数据,您应该使用管理 SDK,如该代码示例所示。它在这里被初始化,并出现在许多其他代码示例中:

    const admin = require('firebase-admin');
    admin.initializeApp(functions.config().firebase);
    

    然后就可以获取到数据库的引用了:

    const ref = admin.database().ref(`/path/to/data`);
    

    ref 这里是一个引用对象。你可以read data with that。请务必查看其他代码示例 - 其中许多使用管理 SDK 读取数据库,就像这样。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-29
      • 1970-01-01
      • 2017-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-15
      相关资源
      最近更新 更多