В настоящее время я создаю приложение чата, в котором я хочу создавать уведомления самостоятельно, а не FCM.Это мои данные json
{
"Message": {
"SenderUID": {
"CurrentUID": {
"message_push_id": {
"name": "abcd",
"from": "abcd",
"time": "abcd",
"status": "abcd"
},
"message_push_id1": {
"name": "abcd",
"from": "abcd",
"time": "abcd",
"status": "abcd"
},
"message_push_id2": {
"name": "abcd",
"from": "abcd",
"time": "abcd",
"status": "abcd"
}
}
}
},
"SenderUID2": {},
"CurrentUID": {
"message_push_id3": {
"name": "abcd",
"from": "abcd",
"time": "abcd",
"status": "abcd"
},
"message_push_id4": {
"name": "abcd",
"from": "abcd",
"time": "abcd",
"status": "abcd"
},
"message_push_id5": {
"name": "abcd",
"from": "abcd",
"time": "abcd",
"status": "abcd"
}
}
}
В этой структуре json "message_push_id" генерируется каждый раз, когда появляется новое сообщение. Поэтому я хочу получить подробную информацию о новом сообщении (дочернем) из узла сообщений
Для этого я использовал следующие коды
Messageref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot uid: dataSnapshot.getchildren()) {
String senderUIDKey = dataSnapshot.getKey();
if (!senderUIDKey.equal(currentuid)) {
Messageref.child(senderUIDKey).child(currentuid).addChildEventListener(childEventListener) = new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String previousChildName) {
String pushkey= dataSnapshot.getKey());
Messsage messages = dataSnapshot.getValue(Messsage.class);
//Here i also used single value event listener of location //
Messageref.child(currentuid).child(senderUIDKey).child(pushkey)//for Main operation//
}
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
System.out.println("The read failed: " + databaseError.getCode());
}
});
Вместо этого кода Возможно ли получить детали сообщения напрямую? Здесь я пытаюсь получить новые добавленные дочерние детали.Для этого я использовал addValueEventListener для получения senderUIDKey в Messageref.2. И после получения senderUID из ValueEventListener я использовал ChildEventListener для получения нового дочернего элемента и его ключа.