有人可以把我放在正確的方向嗎?我需要一個 Firestore 集合來存盤與用戶相關的 API 密鑰。這意味著有:
- API 密鑰
- 用戶身份
- (創建于,未來可能還有其他元欄位)
所以有時我想檢索屬于用戶的所有 API 密鑰的串列。但通常情況是,我的 API 收到一個附帶 API 密鑰的請求,然后我需要快速驗證此 API 密鑰是否存在。這是我第一次玩 Firestore。我只是不知道如何構建集合。API 密鑰應該是 ID 嗎?我是否也能夠有效地獲取具有特定 UID 的 API 密鑰串列?
uj5u.com熱心網友回復:
有人可以把我放在正確的方向嗎?我需要一個 Firestore 集合來存盤與用戶相關的 API 密鑰。
我能想到的最簡單的 Firestore 結構可能如下所示:
Firestore-root
|
--- users (collection)
|
--- $uid (document)
|
--- apiKeys: ["apiKeyOne", "apiKeyTwo", "apiKeyThree"] //Array
|
--- uid: "userId" //String
|
--- createdAt: October 21, 2021 at 2:46:19 PM UTC 3 //Timestamp
所以有時我想檢索屬于用戶的所有 API 密鑰的串列。
假設您正在使用Firebase Authentication,為此,只需使用以下代碼行:
firebase.auth().onAuthStateChanged((user) => {
if (user) {
var uidRef = db.collection("users").doc(user.uid);
//Process the data
}
});
但通常情況是,我的 API 收到一個附帶 API 密鑰的請求,然后我需要快速驗證此 API 密鑰是否存在。
要解決這個問題,您必須使用以下方法檢查特定的 API 密鑰是否已存在:
var queryByApiKey = db.collection("users").where("apiKeys", "array-contains", "apiKeyToCheck");
API 密鑰應該是 ID 嗎?
不,沒有必要那樣做。
我是否也能夠有效地獲取具有特定 UID 的 API 密鑰串列?
當然,正如上面已經解釋的那樣。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/333918.html
上一篇:如果密鑰存在,則阻止地圖更新
