獲取Firebase和JavaScript的掛件以編碼雲端功能;但我想我正在尋找是否有人可以解釋使用以下查找和/或寫入雲功能的優點和缺點?!Firebase的雲端功能:管理員與根查找
- 使用
admin.database().ref()
VS root.child()
我自己一直在使用admin.database.ref()
,但我需要?是否同樣使用root.child()
代替?
獲取Firebase和JavaScript的掛件以編碼雲端功能;但我想我正在尋找是否有人可以解釋使用以下查找和/或寫入雲功能的優點和缺點?!Firebase的雲端功能:管理員與根查找
admin.database().ref()
root.child()
我自己一直在使用admin.database.ref()
,但我需要?是否同樣使用root.child()
代替?
我看到你也在我的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,那就完全沒問題。
謝謝你擴大你的答案。對於我的應用程序和我的觀點,使用admin.database()。ref()是有意義的,因爲它允許我對實際數據實施更嚴格的安全規則,因爲雲功能由管理員管理。因此,我可以通過admin.database()。ref()來獲得除管理員以外沒有寫入權限的節點。 – Learn2Code