我正在使用 Firebase 数据库和 Java 在 Android 上创建一个聊天应用程序。每当用户首次注册时,它会将其用户名存储到节点下的数据库中user/UserID/profile/username
。用户名使用 User 类存储。这是存储用户名值的位置。但是当我尝试类似的事情时
mDatabase.child("users").child(UserID).child("profile").child("username").toString();
这为我提供了用户名的路径,但不是用户名本身。有谁知道如何获取用户名本身的值?
编辑:当我运行时它给我一个错误
DataSnapshot.child("users").child(mUserID).child("profile").child("username").getValue().toString();
这是我的 Firebase 数据库在 UserID 下显示的内容。
您没有正确获取该值。您需要为您的孩子附加一个侦听器并获取更新。你这样做:
// Get a reference to your user
final FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference ref = database.getReference("server/path/to/profile");
// Attach a listener to read the data at your profile reference
ref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Profile profile = dataSnapshot.getValue(Profile.class);
System.out.println(profile.getUsername());
}
@Override
public void onCancelled(DatabaseError databaseError) {
System.out.println("The read failed: " + databaseError.getCode());
}
});
您可以在 Firebase 上找到更多信息和示例website https://firebase.google.com/docs/database/admin/retrieve-data。请记住,您不会发出从 Firebase 获取数据的请求。您将侦听器附加到子级,然后从侦听器获取数据。此示例假设您有一个Profile
模型,具有获取用户名的方法。这将返回你的Profile
对象,并使您能够从该对象中获取所需的任何数据。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)