如何使用新的 Cloud Functions for Firebase 读取数据?
How can I just read data using the new Cloud Functions for Firebase?
我处于需要通过 "cron" 作业读取 Firebase 实时数据库的情况。
我分析并使用了 this 存储库,但我似乎无法理解如何简单地检索实时数据库中所有用户或所有数据的列表。 functions.database.ref
的唯一功能是 onWrite
,这对我没有帮助。
我知道 Cloud Functions 是面向事件的,它们是为响应某些触发器等而编写的,但据我所知 here,这并非不可能,我们显然可以访问数据。
在他们的 'delete accounts' 示例中,他们使用了这个:
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
以及下面的其余跟踪:
您不能使用 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是一个Reference对象。你可以read data with that。请务必也查看其他代码示例 - 其中许多示例使用 admin SDK 读取数据库,就像这样。
我处于需要通过 "cron" 作业读取 Firebase 实时数据库的情况。
我分析并使用了 this 存储库,但我似乎无法理解如何简单地检索实时数据库中所有用户或所有数据的列表。 functions.database.ref
的唯一功能是 onWrite
,这对我没有帮助。
我知道 Cloud Functions 是面向事件的,它们是为响应某些触发器等而编写的,但据我所知 here,这并非不可能,我们显然可以访问数据。 在他们的 'delete accounts' 示例中,他们使用了这个:
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
以及下面的其余跟踪:
您不能使用 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是一个Reference对象。你可以read data with that。请务必也查看其他代码示例 - 其中许多示例使用 admin SDK 读取数据库,就像这样。