2017-03-09 39 views
1

这是火力地堡数据库的节点:为什么缓冲区在这个例子中返回null?

https://i.stack.imgur.com/OxEo4.png

这是检索行的数据代码:

database = FirebaseDatabase.getInstance(); 
     myRef = database.getReference(FirebaseAuth.getInstance().getCurrentUser().getUid()); 
     myRef.addValueEventListener(new ValueEventListener() { 
      @Override 
      public void onDataChange(DataSnapshot dataSnapshot) { 

       for (DataSnapshot data : dataSnapshot.getChildren()) { 
        TripAddData value = (TripAddData) data.child(FirebaseAuth.getInstance().getCurrentUser().getUid()).child("Trips").child("13").child("tripName").getValue(); 
        buffer.append(value+"#"); 
        System.out.println(FirebaseAuth.getInstance().getCurrentUser().getUid()); 
       } 
       System.out.println(buffer.toString()); 
      } 

      @Override 
      public void onCancelled(DatabaseError error) { 
       // Failed to read value 
       Log.w("****", "Failed to read value.", error.toException()); 
      } 
     }); 

为什么零的缓冲器回报?

+1

buffer.append()之前的缓冲区定义在哪里?在onCreate()中使用 –

+0

; ,它只是缓冲=新的StringBuffer(); –

回答

0

尝试更换此:

TripAddData value = (TripAddData) data.child(FirebaseAuth.getInstance().getCurrentUser().getUid()).child("Trips").child("13").child("tripName").getValue(); 

有了这个:

String value = data.child("Trips").child("13").child("tripName").getValue(String.class); 

我不能帮你铸造到TripAddData没有看到什么,实际上是。但这至少应该返回一些东西。