【发布时间】:2019-11-07 12:11:08
【问题描述】:
因此,我正在将用户信息存储在我的数据库中,除了从 Firebase 用户获得的标准数据之外,我还想添加自己的自定义数据。我正在为我的每个用户设置一个个人资料页面,我想生成一个随机的 10 位数字作为他们的个人资料 ID。然后我将它存储在我的数据库中,以备不时之需。但是,我需要它们是唯一的数字并且它们不会重复,所以我尝试查询数据库以检查我生成的 profileID 是否已在使用,如果是,则生成另一个。但是,除了使用循环之外,我不知道如何在 Firestore 中重复查询,但这似乎行不通。
const usersRef: AngularFirestoreCollection = this.afs.collection('users');
var query = usersRef.ref.where("profileID", '==', profileID);
query.get().then((querySnapshot) => {
if (!querySnapshot.empty) {
profileID = this.getRandomProfileID();
}
})
【问题讨论】:
-
谁保证第二次生成profileID不存在?它不会 100% 解决问题,但我建议将时间戳添加到配置文件 ID 以解决它。
-
这就是为什么我要重复它直到生成的 profileID 是唯一的。由于我使用的是 10 位数字,因此大约有 100 亿种不同的组合,因此它始终是唯一的。
标签: javascript angular google-cloud-firestore angularfire2