Я создаю приложение messenger в 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"
}
}
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"));
}
});
предположим, что у вас есть структура followig в базе данных firebase:
users:{ uid:[userid]
name:[username]
}
Student:{ rollno:[rollno]
name:[studendname]
}
Затем для доступа к ref.child('users/'+userid).addValueEventListener(...
пользователей вы можете использовать url ref.child('users/'+userid).addValueEventListener(...
Это окончательный ответ, который я выяснил
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) {
}
});
}
});