今天,我尝试获取firebase
数据库的某个子项,但我不知道我的结构是否是我的最佳选择,所以我有一个类似“ rappi”的应用程序,并且如果有用户ID,则有子项empresa和子项像这样:
所以我想让孩子进入宠物店,而Logged用户在farmacia内部。我想知道从empresa获取ID的更好方法。
DatabaseReference produtosRef = firebaseRef
.child("empresa")
.child( "How i get this?" )
.child(UserID);
我不知道该怎么办
Edit1:如果要通过“ petshop”或“ farmcia”,我想获取用户ID
答案 0 :(得分:0)
我认为您已经有一个自定义类来存储对象。如果没有,请创建它!
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
}
});