java - 如何从firebase数据库的内部节点读取值?
问题描述
我在firebase中为一个android应用程序创建了一个实时数据库。数据库的内容是这样的
"Users" : {
"fqwtFeCgp3fIvYay9PRppUyHv5C3" : {
"email" : "ruthvikbr24@gmail.com",
"post" : "manager",
"name" : "eurhvik",
"password" : "password",
"phone" : "1234567890"
}
}
代码 :
database = FirebaseDatabase.getInstance();
String userId = FirebaseAuth.getInstance().getCurrentUser().getUid();
userData = database.getReference("Users").child(userId);
userData.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String post = dataSnapshot.child("gender").getValue(String.class);
Toast.makeText(getApplicationContext(),""+post,Toast.LENGTH_SHORT).show();
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
根据post
功能中的价值会有所不同。当用户通过 firebase Auth 注册应用程序时,它的一份副本连同 uid 以上述格式存储在数据库中。如何检索post
特定 uid 的值?
解决方案
要获取帖子,请执行以下操作:
String userId = FirebaseAuth.getInstance().getCurrentUser().getUid();
DatabaseReference dbRef = FirebaseDatabase.getInstance().getReference("Users").child(userId);
dbRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String post = dataSnapshot.child("post").getValue(String.class);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
首先添加对节点的引用,然后您可以在附加侦听器后userId
检索。post
推荐阅读
- docker - 在 Windows 上使用 Docker Compose 和 Scylla 时无法初始化目录(存储 I/O 错误:22:无效参数)
- discord.py - on_member_join 函数在 discord.py 中不起作用
- javascript - Next.js Vanilla JS 脚本不会在部署时运行
- python - 如何更新 Matplotlib 上的形状?
- api - 尝试在共享首选项中存储令牌但不工作
- mysql - 如何连接到运行 mysql 的 Docker?
- flutter - Flutter 2 渲染图像像素化
- javascript - React-Three-Fiber + ThreeJS:Sprite alpha 边缘非常粗糙
- java - JNI:在 C++ 中对 jarray 的全局引用
- r - R - 读取 html 链接的下标越界