首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以在firestore中设置自定义ID吗?

我可以在firestore中设置自定义ID吗?
EN

Stack Overflow用户
提问于 2021-11-03 16:15:44
回答 1查看 24关注 0票数 0

以前,我使用实时数据库,但现在我需要更改为使用firestore。

当我在实时数据库中写数据时,我使用这种方法。

代码语言:javascript
复制
FirebaseUser firebaseUser = firebaseAuth.getCurrentUser();
String userid = firebaseUser.getUid();
reference = FirebaseDatabase.getInstance().getReference().child("Users").child(userid);
HashMap<String, Object> hashMap = new HashMap<>();
hashMap.put("id", userid);
hashMap.put("email", email);
hashMap.put("username", username);

因此,数据将如下所示

代码语言:javascript
复制
  "Users" : {
    "02nfE2JziDgzxZwYpmCwQ20QwQ93" : {
      "email" : "sowtp12pushcivet@gmail.com",
      "id" : "02nfE2JziDgzxZwYpmCwQ20QwQ93",
      "username" : "AAA"
    },

但是当我使用firestore时,它会显示以下内容

代码语言:javascript
复制
  "Users" : {
    "u93AclSJJiLQBdfcK2st" : {
      "email" : "sowtp12pushcivet@gmail.com",
      "id" : "02nfE2JziDgzxZwYpmCwQ20QwQ93",
      "username" : "AAA"
    },

我可以将u93AclSJJiLQBdfcK2st更改为02nfE2JziDgzxZwYpmCwQ20QwQ93吗?如果它可以更改,我该怎么办?

这是我的代码。

代码语言:javascript
复制
db = FirebaseFirestore.getInstance();
HashMap<String, Object> hashMap = new HashMap<>();
hashMap.put("id", userid);
hashMap.put("email", email);
hashMap.put("username", username);

db.collection("Users").add(hashMap).addOnSuccessListener(new OnSuccessListener<DocumentReference>() {
@Override
public void onSuccess(DocumentReference documentReference) {
Toast.makeText(RegisterActivity.this, "OK", Toast.LENGTH_SHORT).show();
   }
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-03 17:00:25

当您调用add()时,Firestore会生成一个新的文档ID。它等同于为实时数据库API调用push()

如果您想指定自己的文档ID,请不要调用add,而是使用document("yourNewId").set()传递:

代码语言:javascript
复制
db.collection("Users").document(userid).set(hashMap)...

另请参阅setting a document value上的Firebase文档。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69828258

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档