[当我尝试从addChildListerner(DataSnapShot)获取对象时,它可以正常工作,并将DataSnapshot分配给对象
此工作正常:
myRef = database.getReference("Chat").child(Combine);
myRef.orderByKey().limitToLast(1).addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
ChatData user = dataSnapshot.getValue(ChatData.class);
userChild.add(user);
但是当我尝试使用ValueListerner(snapshot)应用程序崩溃获取相同的对象时我已经使用了所有内容snapshot.getChildern ()
snapshot.getValue
,然后应用崩溃了。
错误
myRef = database.getReference("Chat").child(Combine);
myRef.orderByKey().limitToLast(1).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
ChatData user = dataSnapshot.getValue(ChatData.class);
userChild.add(user);
}
我想找ChatData用户= dataSnapshot.getValue(ChatData.class);userChild.add(user);
Debug time :
DataSnapshot { key =
1123469ACDEFFFFGJKLNOOOPQSTUUVWZabccdehhkkloopqruuuuwxyy,
value
= {-LrjsM3ZO0pzQbvCcRuQ
={time=Tue Oct 22 00:53:10 GMT+05:00 2019
, msg=hi
, user_ID=LuFro93OCcPEpoFTKuQhUkeuw462}}
}
如何获得此值
“>
[当我尝试从addChildListerner(DataSnapShot)获取对象时,它可以正常工作,并将DataSnapshot分配给对象。这很好:myRef = database.getReference(“ Chat”)。child(Combine); ...
当您对Firebase数据库执行查询时,可能会有多个结果。因此,快照包含这些结果的列表。即使只有一个结果,快照也会包含一个结果的列表。