我处于需要使用“cron”作业阅读Firebase实时数据库的情况。
我分析并使用this存储库,但我似乎无法理解如何简单地检索实时数据库中所有用户或所有数据的列表。 functions.database.ref
的唯一功能是onWrite
,这对我没有帮助。
我知道云功能是面向事件的,它们是为响应某些触发器而编写的,但就我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){})
但无效Missing required header: Metadata-Flavor
以及下面跟踪的其余部分:
答案 0 :(得分:3)
您无法使用functions.database.ref()
来阅读数据。这仅用于指定要更改数据库以触发功能的路径。要编写类似cron的函数,您不会编写数据库触发器。您可能需要HTTP触发器,如sample code所示。您使用第三方调度程序触发HTTP功能,如自述文件中所述。
要从该函数中的数据库中读取数据,您应该使用admin 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读取数据库。