firebase - Firebase:使用 DocumentSnapshot id 作为用户 uid。想法?
问题描述
目前,用户配置文件是通过将用户添加到 firestore 集合来创建的。
然后我有一个 onCreate 函数,它将在 Firebase 身份验证中创建一个用户。
使用 firestore docId 作为创建的用户 uid 会有问题吗?
谢谢
export const createUser = functions.region('europe-west2')
.firestore.document('users/{user}')
.onCreate(async (snap, context) =>
executeOnce(context.eventId, async (transaction: FirebaseFirestore.Transaction) => {
const data = snap.data();
await auth.createUser({
uid: snap.id,
email: data.email,
password: //,
displayName: `${data.firstName} ${data.lastName}`,
}).then(async function (newUser) {
return db.collection('users').doc(snap.id)
.update({
status: 'Active',
});
}).catch(function (error) {
return console.error(`Error creating user, ${error}`);
});
}));
解决方案
我不明白为什么这会是一个问题。通常来自 Firebase 身份验证的 UID 用作 Firestore 文档 ID。它只是一个标识符,因此您可以准确地指向包含当前用户信息的文档。(<= 只是一个例子)
const uid = firebase.auth().currentUser.uid
const docRef = firebase.firestore().collection("users").doc(uid)
最后,它只是一个唯一的字符串。所以只要它们都一样,你应该没问题。即使不是,您仍然可以使用.where("userId", "==", uid)
.
推荐阅读
- laravel-8 - 如何在 laravel 8 中按品牌订购产品
- r - 如何并行化while循环?
- javascript - 未捕获的 TypeError:products.filter 不是函数
- html - 单元格内容内的 HTML
- amazon-web-services - 限制 AWS EC https 访问
- akka - Akka 演员的化身对远程调用很重要吗?
- sql - 在任何 8 周内使用 FK 计算最大行数
- javascript - Next.js 可以预渲染的路径数量是否有限制?
- javascript - Hash Tables vs Arrays MongoDB 性能哪个实现更快?
- git - 如何用远程覆盖本地历史记录?