Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Firebase数据更新_Java_Android_Firebase_Google Cloud Firestore - Fatal编程技术网

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");