Firebase的云功能:管理员与root查找

时间:2017-04-25 17:35:00

标签: node.js firebase firebase-realtime-database google-cloud-functions

利用Firebase和JavaScript来编写云功能代码;但我想我是否有人能解释使用以下内容在云功能中查找和/或写入的优缺点?!

  1. 使用admin.database().ref()
       vs
  2. root.child()
  3. 我自己一直在使用admin.database.ref(),但我需要吗?是否同样使用root.child()

1 个答案:

答案 0 :(得分:24)

我看到您在Firecast on YouTube的评论中也提到了这个问题。这是个好问题。如果您一直关注Fire Functions示例的Cloud Functions,那么您可能已经看到了admin.database().ref()

admin.database().ref()使用Firebase admin SDK访问数据库中的数据。作为管理员参考,它可以不受限制地访问数据库的任何部分。

在视频root = event.data.ref.root中,引用发生.onWrite事件的数据库的根目录。 ref具有与触发事件的用户相同的读写访问权限。与admin.database().ref()不同,它不授予不受限制的访问权限。因此root.child访问数据库中的特定路径,只要用户有权访问它。

现在event.data.adminRef.root是一个数据库引用,可以无限制地访问数据库的任何部分。如果这听起来像admin.database.ref(),那是因为它们完全相同。就我而言,我选择了event.data.ref.root来限制一个视频中引入的新主题的数量。如果您更习惯使用管理SDK,那就完全没问了。