Как получить дочерние данные в Firebase с помощью & quot; PUSH & quot; без какого-либо формата шифрования

Я создаю приложение для обмена сообщениями в Android и пытаюсь получить данные из Firebase в моем приложении для Android. Но когда я это делаю, я получаю полное дерево на моем экране. Я хочу получить доступ к ребенку напрямую. Есть ли способ получить только то значение, которое я хочу?

retr.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Attach an listener to read the data at our posts reference
ref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
totalmsg[0] =snapshot.getValue().toString();
emultiview.setText(totalmsg[0].toString());
}
@Override
public void onCancelled(FirebaseError firebaseError) {
System.out.println("The read failed: " + firebaseError.getMessage());
}
});
}
});

Я хочу получить привет от этого в Firebase. Проблема, с которой я здесь сталкиваюсь — это шифрование данных. Есть ли способ, которым я могу получить это? И я не могу добавлять данные без использования push (), есть ли другая альтернатива push ()?

{
"chat" : {
"-JZvOzp0L1ccuBt2TVN7" : {
"author" : "JavaUser21221",
"message" : "hello "},
"-JZvPneW5et0_EVRvL5g" : {
"author" : "JavaUser21221",
"message" : "hai"}
}

0

Решение

r.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot snapshot, String previousChildKey) {

Map<String,Object> newPost=(Map<String,Object>)snapshot.getValue();

String name1 = String.valueOf(newPost.get("Author"));
String message1 = String.valueOf(newPost.get("Title"));System.out.println("Message: " + newPost.get("Author"));
System.out.println("Name: " + newPost.get("Title"));

}
});
2

Другие решения

Предположим, у вас есть структура followig в вашей базе данных Firebase:

users:{ uid:[userid]
name:[username]
}
Student:{ rollno:[rollno]
name:[studendname]
}

Затем для доступа к дочернему пользователю вы можете использовать URL ref.child('users/'+userid).addValueEventListener(...,

2

Это окончательный ответ, который я нашел

ref1.addChildEventListener(new ChildEventListener() {
// Retrieve new posts as they are added to Firebase
@Override
public void onChildAdded(DataSnapshot snapshot, String previousChildKey) {

Map<String,Object> newPost=(Map<String,Object>)snapshot.getValue();

String name1 = String.valueOf(newPost.get("Name"));
String message1 = String.valueOf(newPost.get("Message"));

System.out.println("---------------- full data ---------------------");
System.out.println("Message: " + newPost.get("Message"));
System.out.println("Name: " + newPost.get("Name"));
System.out.println("----------------- end of full data --------------------");

if(name1.equals("CCCCC"))
{
System.out.println("---------------- conditioned data ---------------------");
System.out.println("Message: " + newPost.get("Message"));
System.out.println("Name: " + newPost.get("Name"));
System.out.println("----------------- end of conditioned data --------------------");
}
}

@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {

}

@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {

}

@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {

}

@Override
public void onCancelled(FirebaseError firebaseError) {

}
});
}
});
0
По вопросам рекламы [email protected]