SVA*_*ERG 7 javascript firebase reactjs google-cloud-firestore
所以我有一个应用程序,您可以注册和登录.我使用Firebase Auth做到了.
然后我有一个Firestore,我有多个集合,如"请求"和"优惠".我的应用中的Firebase-Authed用户可以创建新的请求,我这样添加:
firestore
.collection('requests')
.add({
category: 'Test',
customer_id: this.props.appState.user.uid, // The uid from Firebase Auth
link: this.state.productLink
})
.then(docRef => {
console.log('Successfully saved!');
})
.catch(error => {
console.log(error);
});
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我想将用户Firbase Auth uid存储到请求中,以便我稍后可以在我的应用程序中查询用户的请求.
问题是:这是正确的方法吗?此时,我不想在我的Firestore中创建用户集合来为用户保存更多数据.在这种情况下,我可以使用uid作为键添加文档,然后在"请求"集合中保存对用户的引用.但在目前的情况下,我不能或至少我还没有找到方法,阅读文档和搜索谷歌.
给出这个答案是为了避免人们必须阅读评论对话。
最佳途径是创建一个名为 的集合users,其中文档 ID 是uid来自 的用户Authentication。最简单的事情是在新注册时执行此操作,您可以在处理新用户注册时执行此操作,或者您可以查看云功能,它会查找新的身份验证并运行如下功能:
exports.sendWelcomeEmail = functions.auth.user().onCreate((user) => {
// ...
});
Run Code Online (Sandbox Code Playgroud)
此处的文档: https: //firebase.google.com/docs/functions/auth-events
无论是否有用户集合,只要您始终有办法检索用户信息,像示例中那样存储 UID 就可以正常工作。创建users集合使得操作为用户存储的数据类型变得更加灵活(因为标准身份验证对象的灵活性为零,这是有充分理由的)。
| 归档时间: |
|
| 查看次数: |
1217 次 |
| 最近记录: |