为什么缓冲区在此示例中返回null?

时间:2017-03-09 20:17:15

标签: android android-layout firebase firebase-realtime-database

这是Firebase数据库中的节点:

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());
            }
        });

为什么缓冲区返回null?

1 个答案:

答案 0 :(得分: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。但这至少应该归还一些东西。