В моем приложении я хочу реализовать функцию чата. Для каждого чата создается уникальный 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) {
}
});
}
}