Firebase的云端function:pipe理员与根查找

掌握Firebase和JavaScript以编码云function; 但我想我正在寻找是否有人可以解释使用以下查找和/或写入云function的优点和缺点?!

  1. 使用admin.database().ref()
    VS
  2. root.child()

我自己一直在使用admin.database.ref() ,但我需要? 使用root.child()而不是同样好?

我看到你也在YouTube上的Firecast的评论中提出了这个问题。 这是个好问题。 如果您一直关注Firebase样本的Cloud Functions,则可能会看到admin.database().ref()

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

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

现在, event.data.adminRef.root是一个数据库引用,可以无限制地访问数据库的任何部分。 如果这听起来像admin.database.ref() ,那是因为它们完全一样。 就我而言,我select了event.data.ref.root来限制一个video中引入的新主题的数量。 如果你更喜欢使用pipe理员SDK,那是完全没问题的。