根
-messages
--LIB38128eG7v
-receiverID: "yoon"
-senderID: "kim"
-text: "good day"
--LIB36334eG9e
-receiverID: "yoon"
-senderID: "kim"
-text: "good night"
这是我的Firebase数据库。
还有一个名为Chat
的类,它具有receiverID
,senderID
,text
。
我可以通过
ref.child("messages").addChildEventListener(new ChildEventListener(){
public void onChildAdded(Datasnapshot dataSnapshot, String s){
Chat chat = dataSnapshot.getValue(Chat.class);
mChat.add(chat); //mChat is an array of Chat
....
}
但是我想获取LIB38128eG7v
的数据,而不是全部消息。在这种情况下,如何获得孩子的孩子价值观之一?
有什么办法不使用监听器吗?
答案 0 :(得分:0)
如果不使用侦听器,则无法从Firebase数据库获取数据。 Firebase中的所有内容都与侦听器有关。要获取-LIB38128eG7v
下的数据,请使用以下代码:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference messageIdRef = rootRef.child("messages").child("-LIB38128eG7v");
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Chat chat = dataSnapshot.getValue(Chat.class);
Log.d("TAG", chat.getText());
}
@Override
public void onCancelled(DatabaseError databaseError) {}
};
messageIdRef.addListenerForSingleValueEvent(valueEventListener);
您的logcat中的输出将为:good day
。
答案 1 :(得分:0)
我认为这样会起作用
if isinstance(item, str):
WORDS.append(item)
if isinstance(item, int):
NUMBERS.append(item)