Android - 来自Firebase的getValue返回null

时间:2017-08-29 10:52:40

标签: android firebase firebase-realtime-database

我在Firebase中设置了子项的值,但是当我从Firebase获取值时,该值为null。我不明白为什么。

Function renamebuttons()
    For Each shp In ActiveSheet.Shapes
        shp.name = "buttonRow" & shp.TopLeftCell.Row
    Next shp
End Function

enter image description here

2 个答案:

答案 0 :(得分:1)

要设置值,您可以直接在引用上使用setValue()方法,如下所示:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference userRef = rootRef.child("Users").child(user.getDisplayName());
userRef.child("deposit").setValue(9); //Sets the value to 9

要获取该值,请使用以下代码:

ValueEventListener eventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        int deposit = dataSnapshot.child("deposit").getValue(Integer.class);
        Log.d("TAG", deposit);
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {}
};
userRef.addListenerForSingleValueEvent(eventListener);

请查看正确的DatabaseReference,其中包含Users,而不仅仅是User,如屏幕截图所示。

答案 1 :(得分:1)

根据您的数据库结构,您应该引用的孩子是用户,在您的代码中,您正在调用用户。修复那个错误...

//Replace child tag by Users to fix the error
database.child("Users").addValueEventListener(new ValueEventListener() { ...