Как получить данные из базы данных Firebase в реальном времени в Android - PullRequest
0 голосов
/ 26 сентября 2018

Я должен получить все дочерние данные из базы данных Firebase в реальном времени?Я хочу получить полученные сообщения от User2.Как это сделать?Пример базы данных приведен ниже -

enter image description here

Ответы [ 2 ]

0 голосов
/ 26 сентября 2018

Здесь вы можете получить полученные пользовательские сообщения

        DatabaseReference mDatabase = FirebaseDatabase.getInstance().getReference("users");

        mDatabase.child("User2").child("MSG_TYPE_RECEIVED").addValueEventListener(new ValueEventListener() {
                    @Override
                    public void onDataChange(DataSnapshot dataSnapshot) {
                           for(DataSnapshot spanshot : dataSnapshot.getChildren()){

                             String content=snapshot.child("msgContent").getValue(String.class);
                             String type=snapshot.child("msgType").getValue(String.class);

                             //then you can log those values
                             Log.d("Values:",""+content+""+type);

                       }


                    }

                    @Override
                    public void onCancelled(DatabaseError databaseError) {

                    }
                });

Если полученное сообщение изменится в любое время (скажем, вы хотите реализовать опцию удаления в реальном времени сообщения, например, WhatsApp) .addValueEventListener будетобновите свой пользовательский интерфейс в режиме реального времени, если вы закодировали, чтобы показать, что сообщение было удалено

0 голосов
/ 26 сентября 2018

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

 DatabaseReference reference = FirebaseDatabase.getInstance().getReference("users").child("User1").child("MSG_TYPE_SENT");

reference.addListenerForSingleValueEvent(new ValueEventListener() {
 @Override
public void onDataChange(DataSnapshot dataSnapshot) {
  for(DataSnapshot datas: dataSnapshot.getChildren()){
     String msgContent=datas.child("msgContent").getValue().toString();
     String msgType=datas.child("msgType").getValue().toString();
    }
  }
 @Override
public void onCancelled(DatabaseError databaseError) {
    }
 });

Это даст вам msgContent и msgType, для извлечения любых данных из базы данных, вам нужнопройти через каждый пример узла: -

getReference("users").child("User1").child("MSG_TYPE_SENT");

Затем вы можете выполнить цикл внутри идентификаторов и получить данные.

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