对象未使用valueEventListerner从Datasnapshot获取但正在工作但可使用AddChildEventListern

问题描述 投票:0回答:1

[当我尝试从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); ...

android firebase firebase-realtime-database
1个回答
0
投票

当您对Firebase数据库执行查询时,可能会有多个结果。因此,快照包含这些结果的列表。即使只有一个结果,快照也会包含一个结果的列表。

© www.soinside.com 2019 - 2024. All rights reserved.