簡體   English   中英

firebase Admin SDK 與 firebase 控制台網頁有何不同?

[英]How firebase Admin SDK differs from firebase console web page?

我正在開發一個以 firebase 作為后端的 android 應用程序,我聽到了一個名為Admin SDK的詞。 我搜索過它,發現它是用來管理數據的。

但我懷疑 firebase 提供了一個控制台網頁 (console.firebase.google.com) 來管理數據,但為什么有一個單獨的 Admin SDK?

有人可以解釋一下嗎...

Firebase 管理 SDK 提供了一種使用 API 調用修改 Firebase 設置和數據的簡單方法。

例如,您可能會問:為什么還要使用常規的 SDK 來存儲數據? 畢竟,您可以直接從 Web 界面存儲和保存數據。 然而,讓用戶每次使用控制台更新他們自己的數據是不安全或不切實際的。

同樣,admin SDK 就像常規 SDK 一樣,但具有管理員權限。 例如,它允許您繞過使用 Firestore 規則設置的規則。 Firebase 管理 SDK 旨在用於您的后端 - 因此您知道它正在運行受信任的軟件。 您知道它將按照您期望的方式運行,這與運行客戶端的代碼不同,這是不可信的。

例如,假設您希望能夠在滿足某些條件時刪除用戶的帖子。 用戶將向您的服務器發出請求,它會檢查是否滿足條件,然后使用其管理員權限刪除帖子。 當然,您可以使用 Firestorm 規則在技術上自動執行此操作,但這些規則可能非常麻煩,並且可能無法在更復雜的示例中使用。

您甚至還可以使用它與其他應用程序集成,例如將您的應用程序連接到無法或不應在客戶端設備上運行的審核工具或詛咒檢測器。

您的問題是為什么 Admin SDK 存在?

  • 有幾個管理任務,例如刪除用戶、列出集合等等,客戶端不能也不應該做更多的事情。
  • Firebase Admin SDK 擁有對 Firebase 項目資源的管理員訪問權限。
  • 它不遵守任何安全規則,可以讀/寫您的任何數據庫、存儲桶..

這就是為什么您必須在服務器(或僅雲功能)中使用 Admin SDK。 雖然我覺得如果您使用自己的服務器和身份驗證方法,Firebase Admin SDK 會更有用。 如果您使用的是自定義服務器,則:

  • 它可用於生成自定義令牌,因此您可以使用自己的方法(可能是舊版身份驗證系統)對用戶進行身份驗證,但此后仍使用 Firebase 身份驗證來處理身份驗證令牌。
  • 如果您使用自己的數據庫(而不是來自 Firebase 的任何數據庫),Admin SDK 可以驗證客戶端發送的 ID 令牌並獲取該用戶的身份。 此后,您可以使用一個簡單的 if-else 語句來決定用戶是否有權訪問請求資源。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM