在Android上引用Firebase数据库的正确方法是什么?

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

我正在使用Firebase Real time数据库进行第一个项目。我正在关注有关如何实例化和写入数据库的Firebase文档(这里没有问题)。但是,当我想从Firebase数据库读取数据时,会得到对数据库的空引用。我正在尝试更改路径,添加根元素,更改为子元素。什么都没有。我可以写。我对数据库的权限已设置为测试。

这是数据库:

user-registration-app-f3fa2
 users
  jjohnson
     email:"[email protected]"
     fullName: "James Johnson"
     username: "jjohnson"

这是我从数据库中读取的位置:

FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference mDatabase = database.getReference("users");

        // Read from the database
        mDatabase.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                String value = dataSnapshot.child("jvazquez").getValue(String.class);
                Log.d(TAG, "Value is: " + value);
            }

            @Override
            public void onCancelled(DatabaseError error) {
                // Failed to read value
                Log.w(TAG, "Failed to read value.", error.toException());
            }
        });
android firebase firebase-realtime-database
2个回答
1
投票

例如,要获取fullName属性的值,请使用以下代码行:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference fullNameRef = rootRef.child("users").child("jjohnson").child("fullName");
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        String fullName = dataSnapshot.getValue(String.class);
        Log.d(TAG, fullName);
    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {
        Log.d(TAG, databaseError.getMessage()); //Don't ignore errors!
    }
};
fullNameRef.addListenerForSingleValueEvent(valueEventListener);

logcat中的输出将是:

James Johnson

0
投票

尝试使用

DatabaseReference mDatabase = database.getReference();

然后尝试

mDatabase = mDatabase.child("users");
© www.soinside.com 2019 - 2024. All rights reserved.