Почему база данных Firebase Realtime не обновляется? - PullRequest
0 голосов
/ 29 января 2020

Я создал список. Когда я попытался обновить значения, значения правильно записаны в 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 Ответ

0 голосов
/ 29 января 2020

Проверьте этот пример. Процесс асинхронный c, поэтому вы должны добавить прослушиватель, чтобы определить, обновлена ​​ли база данных или нет

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
                // ...
            }
        });

Кроме того, во-первых, убедитесь, что вы добавили Inte rnet Разрешение в манифесте. xml И Затем проверьте базу данных реального времени в консоли Firebase и проверьте правила безопасности.

Чтобы обновить базу данных реального времени https://firebase.google.com/docs/database/android/read-and-write#updating_or_deleting_data

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...