Java Firebase数据更新
我想更改用户角色。Java Firebase数据更新,java,android,firebase,google-cloud-firestore,Java,Android,Firebase,Google Cloud Firestore,我想更改用户角色。 我有一个用户id为的用户集合。每个用户都有包含邮件、名称、角色等的字段 DatabaseReference reference; reference = FirebaseDatabase.getInstance().getReference("users"); reference.child(document.getId()).child("Role").setValue("3"); getId()显示正确的用户i
我有一个用户id为的用户集合。每个用户都有包含邮件、名称、角色等的字段
DatabaseReference reference;
reference = FirebaseDatabase.getInstance().getReference("users");
reference.child(document.getId()).child("Role").setValue("3");
getId()显示正确的用户id,但数据库中没有任何更改
好吧,这是个愚蠢的错误。我正在从事云Firestore的工作,并尝试将其更改为 实时数据库
正确的
DocumentReference docfer=db.collection(“用户”).document(document.getId());
Map Map=newhashmap();
地图放置(“角色”、“3”);
docfer.update(地图)
好吧,这是个愚蠢的错误。我正在从事云Firestore的工作,并尝试将其更改为
实时数据库
正确的
DocumentReference docfer=db.collection(“用户”).document(document.getId());
Map Map=newhashmap();
地图放置(“角色”、“3”);
docfer.update(地图)
您的屏幕截图显示Firestore数据库,而不是Firebase实时数据库。两者都是Firebase服务的一部分,但实际上是两种完全不同的产品。所以您需要使用FireStoreSDK中的方法。要更改“角色”属性的值,请使用以下代码行:
String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
CollectionReference usersRef = rootRef.collection("users");
DocumentReference uidRef = usersRef.document(uid);
uidRef.update("Role", "3").addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
Log.d("TAG", "The document is updated successfully!");
}
}
});
String uid=FirebaseAuth.getInstance().getCurrentUser().getUid();
FirebaseFirestore rootRef=FirebaseFirestore.getInstance();
CollectionReference usersRef=rootRef.collection(“用户”);
DocumentReference uidRef=用户引用文档(uid);
uidRef.update(“Role”,“3”).addOnCompleteListener(新的OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
if(task.issusccessful()){
Log.d(“标记”,“文档更新成功!”);
}
}
});
结果是“角色”属性从“0”更新为“3”。您的屏幕截图显示Firestore数据库,而不是Firebase实时数据库。两者都是Firebase服务的一部分,但实际上是两种完全不同的产品。所以您需要使用FireStoreSDK中的方法。要更改“角色”属性的值,请使用以下代码行:
String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
CollectionReference usersRef = rootRef.collection("users");
DocumentReference uidRef = usersRef.document(uid);
uidRef.update("Role", "3").addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
Log.d("TAG", "The document is updated successfully!");
}
}
});
String uid=FirebaseAuth.getInstance().getCurrentUser().getUid();
FirebaseFirestore rootRef=FirebaseFirestore.getInstance();
CollectionReference usersRef=rootRef.collection(“用户”);
DocumentReference uidRef=用户引用文档(uid);
uidRef.update(“Role”,“3”).addOnCompleteListener(新的OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
if(task.issusccessful()){
Log.d(“标记”,“文档更新成功!”);
}
}
});
结果将是“角色”属性从“0”更新到“3”。使用“更新”:
大于“设置值”:
使用“更新”:
大于“设置值”:
是的,我知道。我补充了一个解决方案作为回应,因为我理解了这个错误,但我把它当作其他人犯了类似的错误。我没有尝试过,因为我在你给出解决方案之前就解决了它。我知道。我添加了一个解决方案作为回应,因为我理解了这个错误,但我留下它,就好像其他人犯了类似的错误。我没有尝试过,因为我在你给出解决方案之前就解决了它
reference.child(document.getId()).child("Role").update("3");
reference.child(document.getId()).child("Role").setValue("3");