我可以在 firestore 中设置自定义 ID 吗?
Could I set custom ID in firestore?
之前用的是real-time DB,现在改用firestore了
我在实时DB写数据的时候用的就是这个方法
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);
所以数据会这样显示
"Users" : {
"02nfE2JziDgzxZwYpmCwQ20QwQ93" : {
"email" : "sowtp12pushcivet@gmail.com",
"id" : "02nfE2JziDgzxZwYpmCwQ20QwQ93",
"username" : "AAA"
},
但是当我使用 firestore 时,它会显示这个
"Users" : {
"u93AclSJJiLQBdfcK2st" : {
"email" : "sowtp12pushcivet@gmail.com",
"id" : "02nfE2JziDgzxZwYpmCwQ20QwQ93",
"username" : "AAA"
},
我可以把u93AclSJJiLQBdfcK2st
改成02nfE2JziDgzxZwYpmCwQ20QwQ93
吗,如果可以改,我该怎么办?
这是我的代码。
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();
}
});
当您调用 add()
时,Firestore 会生成一个新的文档 ID。它相当于为实时数据库 API.
调用 push()
如果您想指定自己的文档 ID,请不要调用 add
,而是使用 document("yourNewId").set()
:
db.collection("Users").document(userid).set(hashMap)...
另请参阅 setting a document value 上的 Firebase 文档。
之前用的是real-time DB,现在改用firestore了
我在实时DB写数据的时候用的就是这个方法
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);
所以数据会这样显示
"Users" : {
"02nfE2JziDgzxZwYpmCwQ20QwQ93" : {
"email" : "sowtp12pushcivet@gmail.com",
"id" : "02nfE2JziDgzxZwYpmCwQ20QwQ93",
"username" : "AAA"
},
但是当我使用 firestore 时,它会显示这个
"Users" : {
"u93AclSJJiLQBdfcK2st" : {
"email" : "sowtp12pushcivet@gmail.com",
"id" : "02nfE2JziDgzxZwYpmCwQ20QwQ93",
"username" : "AAA"
},
我可以把u93AclSJJiLQBdfcK2st
改成02nfE2JziDgzxZwYpmCwQ20QwQ93
吗,如果可以改,我该怎么办?
这是我的代码。
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();
}
});
当您调用 add()
时,Firestore 会生成一个新的文档 ID。它相当于为实时数据库 API.
push()
如果您想指定自己的文档 ID,请不要调用 add
,而是使用 document("yourNewId").set()
:
db.collection("Users").document(userid).set(hashMap)...
另请参阅 setting a document value 上的 Firebase 文档。