java - 如何更新我的 firebase 数据库字段?

标签 java android firebase firebase-realtime-database

美好的一天。 我已经尽力了,但每当我输入新的“姓名”、“年龄”或之前输入的任何数据被删除时,都无法更新数据。我想使用推送或其他方式来更新数据。但仍然无法做到这一点。

nameRef.addValueEventListener(new com.google.firebase.database.ValueEventListener() {
            @Override
            public void onDataChange(com.google.firebase.database.DataSnapshot dataSnapshot) {


                String text = dataSnapshot.getValue(String.class);
                String ho = name.getText().toString();

                nameRef.setValue(ho);
            }

            @Override
            public void onCancelled(DatabaseError databaseError) {

            }
        });
        genderRef.addValueEventListener(new com.google.firebase.database.ValueEventListener() {
            @Override
            public void onDataChange(com.google.firebase.database.DataSnapshot dataSnapshot) {
                String text = dataSnapshot.getValue(String.class);
                String ho = gender.getText().toString();
                genderRef.setValue(ho);
            }

            @Override
            public void onCancelled(DatabaseError databaseError) {

            }
        });
        ageRef.addValueEventListener(new com.google.firebase.database.ValueEventListener() {
            @Override
            public void onDataChange(com.google.firebase.database.DataSnapshot dataSnapshot) {
           `enter code here`     String text = dataSnapshot.getValue(String.class);
                String ho = age.getText().toString();
                ageRef.setValue(ho);

            }

            @Override
            public void onCancelled(DatabaseError databaseError) {

            }
        });
        EmailRef.addValueEventListener(new com.google.firebase.database.ValueEventListener() {
            @Override
            public void onDataChange(com.google.firebase.database.DataSnapshot dataSnapshot) {
                String text = dataSnapshot.getValue(String.class);
                String ho = email.getText().toString();
                EmailRef.setValue(ho);

            }

            @Override
            public void onCancelled(DatabaseError databaseError) {

            }
        });

最佳答案

如果你有一个像这样的 JSON 树:

->users
    ->uid
        ->name
        ->age
        ->gender
        ->email

然后要更新数据库中的值,您应该执行如下操作:

DatabaseReference mFirebaseDBRef = FirebaseDatabase.getInstance().getReference();
FirebaseAuth mFirebaseAuth = FirebaseAuth.getInstance();
FirebaseUser mFirebaseUser = mFirebaseAuth.getCurrentUser();

//use a POJO and make sure to have a default empty constructor in that class definition
User user = new User(name, age, gender, email)
mFirebaseDBRef.child("users").child(mFirebaseUser.getUid()).setValue(user);

这应该会更新您的数据库!如果有不清楚的地方,请随时提问。

关于java - 如何更新我的 firebase 数据库字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39024300/

相关文章:

android - 为什么此错误 : java. lang.IllegalStateException:在调用 commit() 后无法再使用写入批处理

java - 如何将 Java 程序转换为 .exe 文件?

java - 异步发送交易 |无法解析方法 'executeTransactionAsync'

java - QNX 上的 Apache Nifi

android - 蓝牙 : Lower MTU value size(big difference) after MTU exchange

android - 查找 Android 应用程序的包名称以使用 Intent 从 Web 启动 Market 应用程序

android - flutter gradle异常退出(firebase认证)

java - 根据最近 24 小时共享 mysql 获取行

Android/Nexus 7 为 Geocoder.getFromLocationName() 抛出 IOException

java - 使用唯一 ID 从 firebase 检索数据