Я использую базу данных firebase и вам нужно создать уникальный дочерний узел в базе данных, чтобы начать чат One-One. Я звоню FireBaseDatabase.updateChildren(RoomName)
, чтобы установить одноместный номер для 2 пользователей.OnDataChange никогда не называется базой данных FIrebase
Я имею вопрос в призыве FireBaseDatabase.addListenerForSingleValueEvent(new ValueEventListener()
и под этим Слушатель ни один из вызовов метода даже не на public void onCancelled(DatabaseError databaseError)
Вот мой код
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Snackbar.make(view, "Hello I am SnackBar", Snackbar.LENGTH_LONG).setAction("Action", null).show();
Log.d(TAG, "User Session Value " + userSession);
userSession = new UserSession(getActivity(), "Pref_FileName");
Log.d(TAG, "User Session Value After Init " + userSession);
final Map<String, Object> RoomName = new HashMap<>();
RoomTitle = userSession.getPhoneNO() + "-" + UserData.getPhone();
otherUserRoom = UserData.getPhone() + "-" + userSession.getPhoneNO();
Log.d(TAG, "Room Title Should Be " + RoomTitle);
DatabaseReference FireBaseDatabase = FirebaseDatabase.getInstance().getReference();
Log.d(TAG, "Chat room name from Database " + db.toString()); //GETTING THIS VALUE IN LOG
FireBaseDatabase.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.hasChild(RoomTitle)) {
intent2.putExtra("Get_Other",RoomTitle);
Log.d(TAG,"Room Exists No Need To Create It "+RoomTitle); // THIS LOG NEVER GENERATE
RoomNameFinal=RoomTitle;
}
else if (dataSnapshot.hasChild(otherUserRoom)){
intent2.putExtra("Get_Other",otherUserRoom);
Log.d(TAG,"Room Exists No Need To Create It "+otherUserRoom);// THIS LOG NEVER GENERATE
RoomNameFinal=otherUserRoom;
}
else {
Log.d(TAG,"None Of the above Room exist so Create one with RoomTitle "+RoomName);// THIS LOG NEVER GENERATE
intent2.putExtra("Get_Other",RoomTitle);
RoomName.put(RoomTitle, "");
FireBaseDatabase.updateChildren(RoomName);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.d(TAG,"On Cancelled Calling "+databaseError.getDetails()); // THIS LOG NEVER GENERATE
Log.d(TAG,"On Cancelled Calling "+databaseError.getMessage()); // THIS LOG NEVER GENERATE
Log.d(TAG,"On Cancelled Calling "+databaseError.toString()); // THIS LOG NEVER GENERATE
}
});
intent2.putExtra("Get_Phone", UserData.getPhone());
intent2.putExtra("Get_Image", UserData.getImage());
intent2.putExtra("Get_Name", UserData.getName());
Log.d(TAG,"Room Name Final "+RoomNameFinal);
startActivity(intent2);
}
});
Edit: Где я добавляю ребенка в моей базе данных Firebase
Я добавляю ребенка в корень, когда onDatachanged вызывается так, что до этого нет ни одного ребенка, я имею в виду root. 'FirebaseDatabaseFirebaseDatabase.getInstance(). GetReference();' return to root, и я добавляю комнату в корневой каталог – androidXP
. Посмотрите изображение выше, чтобы узнать, как мои узлы выглядят в FirebaseDatabase. – androidXP
. Попробуйте эту базу данных DatabaseReferenceReference = FirebaseDatabase.getInstance(). GetReference() .getRoot(); –