Проверка дочернего значения записи базы данных по текущему пользовательскому uid? - PullRequest
2 голосов
/ 05 марта 2020

Есть ли способ проверить дочернее значение в моей базе данных по uid текущего пользователя?

В основном я хочу отобразить сообщение об ошибке / тост, чтобы указать, что пользователь не может удалить счет другого пользователя.

Моя структура базы данных выглядит следующим образом (uid - это поле, которое я хочу сравнить с uid текущего пользователя): структура дБ

В настоящее время у меня есть оператор if else для проверки, введены ли определенные данные:

if (!TextUtils.isEmpty(title) && !TextUtils.isEmpty(payer) && !TextUtils.isEmpty(amount) && (!TextUtils.isEmpty(date))) {
    updateBill(billId, title, payer, amount, date, details, uid);
                    alertDialog.dismiss();

                }


                else {
                    Toast.makeText(MainActivity.this, "Please enter the Title, Payer, Amount and Date", Toast.LENGTH_SHORT).show();

                }

            }

Редактировать: Удалить код:

private boolean deleteBill(String id) {
        //Getting the specified Bill reference by looking at the ID
        DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference("Bills").child(id);
        //Removing the ID
        databaseReference.removeValue();
        Toast.makeText(getApplicationContext(), "Bill Deleted Successfully", Toast.LENGTH_LONG).show();
        return true;
    }

1 Ответ

3 голосов
/ 05 марта 2020

Это поможет вам решить вашу проблему

DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference().child("Bills").child(id)
databaseReference.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            if(FirebaseAuth.getInstance().getCurrentUser().getUid().equals(dataSnapshot.child("uid").getValue(String.class))){
                databaseReference.removeValue();
                Toast.makeText(getApplicationContext(), "Bill Deleted Successfully", Toast.LENGTH_LONG).show();
            }else{
                Toast.makeText(getApplicationContext(), "You're not authorized User to Delete Bill", Toast.LENGTH_LONG).show();
            }
        }

        @Override
        public void onCancelled(FirebaseError firebaseError) {

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