我使用push来保存firebase上的数据,并使用自己的推送ID自动保存,现在我正在尝试检索用于历史的数据,但我不能因为该ID.这就是我所拥有的
mDatabase = FirebaseDatabase.getInstance().getReference();
mDatabase.child(Config.MESSAGE).child(userName).addListenerForSingleValueEvent(
new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
//Getting the data from snapshot
Message message = dataSnapshot.getValue(Message.class);
for (int i = 0; i < 11; i++) {
message.setMessage(message.getMessage() + i);
message.setTitle(message.getTitle() + i);
message.setTime(message.getTime() + i);
System.out.println("we in" + message.getTitle());
/******** Take Model Object in ArrayList **********/
CustomListViewValuesArr.add(message);
Resources res =getResources();
/**************** Create Custom Adapter *********/
adapter=new CustomAdapter(CustomListView, CustomListViewValuesArr,res);
list.setAdapter(adapter);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
// Log.w(TAG, "getUser:onCancelled", databaseError.toException());
// ...
}
});
}
这就是数据的样子
-KRjrOKWwCa6zmhyyhvf
body: "Hi how you doing"
time: "test"
title: "push"
-KRjjiiuwCa6zmhKVsro
body: "Hi how you doing"
time: "test"
title: "push"
-KRjrOef45a6zmhKbytr
body: "Hi how you doing"
time: "test"
title: "push"
我每次都变得无效
解决方法:
看起来您有一个用户的消息列表.但是您的代码似乎将结果视为单个消息.那样不行.
如果确实发生了这种情况,请尝试:
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot messageSnapshot: dataSnapshot.getChildren()) {
Message message = messageSnapshot.getValue(Message.class);
我们最近在Firebase documentation on querying data中添加了一个关于此的示例.