firebase/firestore:创建和存储文档的唯一 ID(USERID 的用户)

Jay*_*Jay 3 firebase angular google-cloud-firestore

我想根据位置为每个用户生成唯一 ID。例如:如果用户来自 newyouk,ID 将是 NY-23234。这应该发生在用户第一次注册我的应用程序时。

我看到我可以使用自动生成的 firestore ID - 但是分配为 id 太长了,而且它不能有任何其他字符。我正在使用 angularfire2 连接到 firestore。

我现在的想法是:每次注册新用户时,将用户详细信息保存在“用户集合”中(使用 Firestore 自动生成的密钥作为文档密钥)并运行 firebase 函数以在“用户”集合中创建项目。它应该返回来自同一位置的最后一个 singup 用户 ID 并在其中添加“1”。然后将该号码保存到新创建的用户。

有什么建议吗?任何其他方式来做到这一点。

Gök*_*man 8

如果你使用 angularfire2 你应该使用 createId() 函数:

//Defination:
import { AngularFirestore } from 'angularfire2/firestore';
// in constructor
export class Foo{ constructor(private afs: AngularFirestore)}
//then use it:
const id = this.afs.createId();
Run Code Online (Sandbox Code Playgroud)

注意:我不确定这个 id 是否唯一 在 firestore 中
编辑
每个文档都有唯一的 id。你可以使用它。例如,您可以通过像这样创建文档来添加额外的字段:

this.afs.collection('collection_name').add(your_obj)
.then(ref => {
ref.set({ extra_idField: ref.id }, { merge: true }).then(() => {
console.log("Your extra id field has been created");
});
Run Code Online (Sandbox Code Playgroud)