有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java为什么Firebase实时数据库未更新?

我已经创建了一个列表。当我尝试更新这些值时,这些值在Edittext中被正确捕获。但是,当我在更正后单击“更新”按钮时,它不起作用并强制关闭应用程序

我的更新代码如下

public class UpdateActivity extends AppCompatActivity {

private EditText PName, PLocation;
private FirebaseDatabase mDatabase;
private DatabaseReference mDbRef;
private Button upbtn;

private String prID;
private String pname,plocation;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_update);

    prID = getIntent().getStringExtra("ProjID");
    pname = getIntent().getStringExtra("pname");
    plocation = getIntent().getStringExtra("plocation");

    PName = findViewById(R.id.uProjName);
    PName.setText(pname);
    PLocation = findViewById(R.id.uProjLocation);
    PLocation.setText(plocation);
    PType = findViewById(R.id.uProjType);

    upbtn = findViewById(R.id.ubutton);
   mDbRef = mDatabase.getInstance().getReference().child("Projects");

   upbtn.setOnClickListener(new View.OnClickListener() {
       @Override
       public void onClick(View v) {
           DatabaseReference updateProject = mDbRef.child(prID);
           updateProject.child("pname").setValue(PName);
           updateProject.child("plocation").setValue(PLocation);
           Toast.makeText(UpdateActivity.this, "Project updated Successfully",Toast.LENGTH_LONG).show();
   finish();
       }
   });
}
}

我是一个学习者。请帮助我我的代码哪里出错了


共 (1) 个答案

  1. # 1 楼答案

    看看这个例子。该过程是异步的,因此您必须添加侦听器来确定数据库是否已更新

    mDatabase.child("achildName").child("anotherChildName").setValue(YOUR_DATA)
            .addOnSuccessListener(new OnSuccessListener<Void>() {
                @Override
                public void onSuccess(Void aVoid) {
                    // Write was successful!
                    // ...
                }
            })
            .addOnFailureListener(new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception e) {
                    // Write failed
                    // ...
                }
            });
    

    除此之外,首先,确保在清单中添加了Internet权限。xml 然后在Firebase控制台中检查实时数据库并检查安全规则

    更新实时数据库https://firebase.google.com/docs/database/android/read-and-write#updating_or_deleting_data