Firestore - 在添加之前是否有可能获得ID?
问题描述:
我知道,在Realtime Database
我能得到push ID
有人这样加入之前:Firestore - 在添加之前是否有可能获得ID?
DatabaseReference databaseReference= FirebaseDatabase.getInstance().getReference();
String challengeId=databaseReference.push().getKey();
,比我可以用这个ID将其添加。
我能得到它也在Cloud Firestore?
答
这是包括在documentation。请参阅添加文档部分的最后一段。
DocumentReference ref = db.collection("my_collection").document();
String myId = ref.getId();
答
projectsRef是公司的FireStore采集参考。
数据是您想上传到firestore的键值的对象。
AFS是angularfirestore模块构造注入
您可以在下面的方式做到这一点(代码是AngularFire2 V5,它类似于火力SDK的任何其他版本说网络,节点等)
const pushkey = this.afs.createId();
const project = {' pushKey': pushkey, ...data };
this.projectsRef.doc(pushkey).set(project);
这将产生在收集新的文件名为projectsRef其在pushKey ID和文件将有pushKey属性相同的文件ID
记住,S et也将删除任何现有数据
其实.add()和.doc().set()与.add()相同,id是自动生成的, 与.doc().set()可以提供自定义ID。
在添加之前获取生成的ID是否有可能在添加之后覆盖其他数据? (因为这个ID是在...之前生成的) –
对我来说也是一样......在firestore中'.document()'不会给与push()'做同样的与数据库通信的印象。我相信普遍的观点是,身份证碰撞的可能性很低,我们不必关心它。 – 34m0
我想这是另一个问题... –