Как прочитать значение из внутреннего узла в базе данных Firebase? - PullRequest
1 голос
/ 06 января 2020

Я создал базу данных реального времени в firebase для приложения android. Содержимое базы данных выглядит как

"Users" : {
    "fqwtFeCgp3fIvYay9PRppUyHv5C3" : {
      "email" : "ruthvikbr24@gmail.com",
      "post" : "manager",
      "name" : "eurhvik",
      "password" : "password",
      "phone" : "1234567890"
    }
}

Код:

database = FirebaseDatabase.getInstance(); 
String userId = FirebaseAuth.getInstance().getCurrentUser().getUid(); 
userData = database.getReference("Users").child(userId); 
userData.addValueEventListener(new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 
        String post = dataSnapshot.child("gender").getValue(String.class); 
        Toast.makeText(getApplicationContext(),""+post,Toast.LENGTH_SHORT).show(); 
    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {

    }
});

В зависимости от значения в post функциональные возможности будут различаться. Когда пользователи регистрируются в приложении через Firebase Auth, одна копия его вместе с uid сохраняется в базе данных в указанном выше формате. Как я могу получить значение в post для определенного UID?

1 Ответ

2 голосов
/ 06 января 2020

Чтобы получить сообщение, выполните следующие действия:

String userId = FirebaseAuth.getInstance().getCurrentUser().getUid();
DatabaseReference dbRef = FirebaseDatabase.getInstance().getReference("Users").child(userId);
dbRef.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
           String post = dataSnapshot.child("post").getValue(String.class);
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

Сначала добавьте ссылку на узел userId, затем вы можете получить post после подключения прослушивателя.

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