Получить ребенка без изменений от Firebase - PullRequest
0 голосов
/ 02 ноября 2018

В моем приложении я хочу реализовать функцию чата. Для каждого чата создается уникальный chatID, который нужно получить при его запуске. Я читал об использовании ListenerForSingleValueEvent() для получения dataSnapshot, но, похоже, оно достигается только при изменении данных. Как я могу получить данные от ребенка без необходимости что-либо менять?

Вот так я не получаю свой chatID:

public class ChatActivity extends AppCompatActivity {

    String chatId;
    DatabaseReference mDatabaseUser, mDatabaseChat;

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

        mDatabaseUser = FirebaseDatabase.getInstance().getReference().child("Users").child("ChatId");
        mDatabaseChat = FirebaseDatabase.getInstance().getReference().child("Chat");
        getChatId();
    }
 
    private void getChatId(){
        mDatabaseUser.addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                if (dataSnapshot.exists()){
                    chatId = dataSnapshot.getValue().toString();
                    mDatabaseChat = mDatabaseChat.child(chatId);
                }
            }
            @Override
            public void onCancelled(DatabaseError databaseError) {
            }
        });
    }
}

1 Ответ

0 голосов
/ 02 ноября 2018

Вы можете использовать метод addValueEventListner для получения значений из базы данных Firebase в реальном времени.

private void getChatId() { 
    DatabaseReference firebaseDatabaseReference = FirebaseDatabase.getInstance().getReference(dbPath);
    //dbPath is the path of the data stored in firebase required to receive
    firebaseDatabaseReference.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            //your code here
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });
}

См. документацию по пожарной базе

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