android - 如何从 Firebase 数据库中获取用户 ID
问题描述
今天我尝试获取一些firebase
数据库的孩子,我不知道我的结构是否是我最好的情况,所以我有一个像“rappi”这样的应用程序,如果用户 id 像这样,我有孩子 empresa 和孩子:
所以我想让孩子进入宠物店,而用户 Logged 在farmacia 内。我想知道从 empresa 获取 id 的更好方法。
DatabaseReference produtosRef = firebaseRef
.child("empresa")
.child( "How i get this?" )
.child(UserID);
我不知道如何获得第二个实例
Edit1:如果通过“petshop”或“farmácia”,我想获取用户 ID
解决方案
我认为您已经有一个自定义类来存储对象。如果没有,请创建它!
class YourClass{
public String categoria;
public String email;
public String uid;
///....and some attributes as in your pic you posted
}
接下来,在您的代码中的某个位置。从数据库中获取所有对象。您需要将子事件侦听器添加到您的 firebase 参考。
ArrayList < YourClass > objects = new ArrayList < > ();
DatabaseReference dataRef =
FirebaseDatabase.getInstance().getReference("empresa").child("farmacia");
dataRef.addChildEventListener(new ChildEventListener() {
@Override
public void onChildChanged(DataSnapshot snapshot, String previousChildName) {}
@Override
public void onCancelled() {
System.err.println("Listener was cancelled");
}
@Override
public void onChildAdded(DataSnapshot snapshot, String arg1) {
YourClass object =
(YourClass(dataSnapshot.getValue(YourClass.class));
if (object != null) objects.add(object);
//from now you have object so you can access and modify or do anything with it
}
@Override
public void onChildMoved(DataSnapshot arg0, String arg1) {
// TODO Auto-generated method stub
}
@Override
public void onChildRemoved(DataSnapshot arg0) {
// TODO Auto-generated method stub
}
});
推荐阅读
- azure - 如何检查逻辑应用表达式中的 sql 执行查询数据是否为空?
- php - 删除订购产品的“加入购物车”按钮
- javascript - 滚动页面闪烁效果
- node.js - 如何在 node js 应用程序中实现从一个项目的 GCR 到另一个项目的 GCR 的容器图像复制?
- angular - 角度的自定义中间件
- javascript - JavaScript 从 HTML 生成 PDF
- c# - 如何使用 Createdataction 将数据解析为 Json 并返回到另一个方法?
- android - 我的 Android 应用在 Native 部分使用了过多的 RAM(0.8 GB)。如何减少它?
- spring-boot - 用于 API 测试的 Spring Runner 测试返回 404
- c# - 在类中填充列表