gpt4 book ai didi

java - 如何在Java Android中的Firebase中找到子子项

转载 作者:行者123 更新时间:2023-12-01 19:31:52 25 4
gpt4 key购买 nike

我看过几个答案,但我没有从这些答案中得到帮助!也许我错了。但在这里我试图在 split_management 中找到 where key = user_id 项目。下面是图片!

enter image description here

下面是未按预期工作的代码!

public synchronized void fetchGroups(final IConstants.CallBack callBack) {
Models.User model = AppController.instance.getUser();
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference mDatabaseReference = database.getReference();
Query query = mDatabaseReference.child(IConstants.DBReference.split_management).orderByChild(model.getUid());
query.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(@NonNull DataSnapshot dataSnapshot, String previousChildKey) {
if (dataSnapshot.exists()) {
if (callBack != null) {
Models.Group group = dataSnapshot.getValue(Models.Group.class);
callBack.callBack(group);
}
}
}

@Override
public void onChildChanged(@NonNull DataSnapshot dataSnapshot, String s) {
if (callBack != null) {
callBack.callBack(IConstants.Key.updated);
}
}

@Override
public void onChildRemoved(@NonNull DataSnapshot dataSnapshot) {
if (callBack != null) {
callBack.callBack(IConstants.Key.updated);
}
}

@Override
public void onChildMoved(@NonNull DataSnapshot dataSnapshot, String s) {
if (callBack != null) {
callBack.callBack(IConstants.Key.updated);
}
}

@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
if (callBack != null) {
callBack.callBack(null);
}
}
});

我没有得到正确的输出!如果你们能为我提供解决方案,我将非常感谢你们!我想要结果查询 - 获取记录,其中 key(随机内部)= 'SOME_KEY'(用户 ID)

最佳答案

通过指定起始值 false 过滤掉查询结果中返回的 null 值:

 Query query = mDatabaseReference.child(IConstants.DBReference.split_management).orderByChild(model.getUid()).startAt(false);

参见How query data is ordered为什么这里使用 false

但是,此查询是不明智的,因为它要求客户端执行排序,因为数据不可索引。我建议在 /users/someUserId/split_management_ids 或类似文件中保留链接到所需用户的所有 split_management ID 列表,如下所示:

{
"/users/someUserId/split_management_ids": {
"251219141300803": true,
"564634584234535": true
}
}

关于java - 如何在Java Android中的Firebase中找到子子项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59502121/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com