有人能把我引向正确的方向吗?我需要一个 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 密钥列表?
当然,如上所述。