2017-04-25 142 views
8

獲取Firebase和JavaScript的掛件以編碼雲端功能;但我想我正在尋找是否有人可以解釋使用以下查找和/或寫入雲功能的優點和缺點?!Firebase的雲端功能:管理員與根查找

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

我自己一直在使用admin.database.ref(),但我需要?是否同樣使用root.child()代替?

回答

22

我看到你也在我的Firecast on YouTube的評論中提出這個問題。這是個好問題。如果您一直關注Firebase樣本的雲端功能,則可能會看到admin.database().ref()

admin.database().ref()使用Firebase admin SDK訪問數據庫中的數據。作爲管理員參考,它可以無限制地訪問數據庫的任何部分。

在視頻root = event.data.ref.root中,引用了發生事件的數據庫的根目錄。 ref與觸發事件的用戶具有相同的讀取和寫入權限。與admin.database().ref()不同,它不授予無限制的訪問權限。因此,只要用戶有權訪問數據庫中的特定路徑,就可以訪問該數據庫中的特定路徑。

Now event.data.adminRef.root是一個數據庫引用,可以無限制地訪問數據庫的任何部分。如果這聽起來像admin.database.ref(),這是因爲它們完全相同。就我而言,我選擇了event.data.ref.root來限制一個視頻中引入的新主題的數量。如果你更喜歡使用管理員SDK,那就完全沒問題。

+0

謝謝你擴大你的答案。對於我的應用程序和我的觀點,使用admin.database()。ref()是有意義的,因爲它允許我對實際數據實施更嚴格的安全規則,因爲雲功能由管理員管理。因此,我可以通過admin.database()。ref()來獲得除管理員以外沒有寫入權限的節點。 – Learn2Code