android - 在 Android 上引用 Firebase 数据库的正确方法是什么?
问题描述
我正在使用 Firebase 实时数据库进行我的第一个项目。我正在关注关于如何实例化和写入数据库的 Firebase 文档(这里没问题)。但是,当我想从 Firebase 数据库中读取数据时,我得到一个对我的数据库的空引用。我正在尝试更改路径,添加根元素,更改为子元素。没有任何效果。我可以给它写信。我对数据库的权限设置为用于测试。
这是数据库:
user-registration-app-f3fa2
users
jjohnson
email:"jjohnson@parks.org"
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());
}
});
解决方案
例如,要获取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
推荐阅读
- javascript - Asp.net MVC 使用 ajax 调用从当前视图页面重定向到另一个视图
- javascript - Javascript 和 Python 的跨码哈希
- magento - Magento 2 Authorize.net 支付失败问题
- angularjs - ng-click 内的一种数据绑定方式
- python-2.7 - 是否可以使用带有流输入和输出的机器学习库?
- php - 通过android传递数据时php $_REQUEST不起作用
- javascript - 过滤 ul 中的 li 元素并保留路径
- oracle - 如何在 sqlplus 中包含字符串结果周围的双引号?
- kotlin - 如何为此方法完成 Kotlin 转换
- jenkins - 在 Jenkins 中使 SBT 缓存的工件本地化到工作区