gpt4 book ai didi

android - 使用 equalTo 条件在 Firebase 中查询不起作用

转载 作者:行者123 更新时间:2023-11-30 00:56:41 24 4
gpt4 key购买 nike

我在 Firebase 中有这样的数据库结构

enter image description here

我想根据键 number 搜索此结构的搜索并返回父键。这意味着如果我搜索 8860124421 那么我应该得到 -KTEtSR7chN8te1WaW-W 作为返回。

我在android中是这样做的-

final String number = "8860124421";

DatabaseReference global_user_entry_ref = ApplicationContext.getGlobalDataBaseReference()
.child("User-Entry-2").getRef(); //Reference to User-Entry-2

Query query = global_user_entry_ref.orderByChild("number").equalTo(number);

query.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {

if(dataSnapshot != null){

for(DataSnapshot friend: dataSnapshot.getChildren()){

String firebase_id = (String) friend.getKey();

Log.d("ContactSync","handle number "+firebase_id+" "+number+" "+friend);
}

Log.d("ContactSync","handle number outer "+dataSnapshot);
//user exist
}
else {
//user_does_not_exist
}
}

@Override
public void onCancelled(DatabaseError databaseError) {
Log.d("ContactSync","handle number oncancel "+databaseError.getMessage());
}
});

但我没有得到正确的结果,onDataChange 中的 dataSanpshot 看起来像这样 -

DataSnapshot { key = User-Entry-2, value = null }

但我想获取带有数字键父级的 dataSnapShot。

请帮忙,提前致谢

最佳答案

正如@Frank van Puffelen 在评论中所述,问题是我将代码中的数字与数据库中的字符串进行比较,这不匹配,因此解决方案是更改

final String number = "8860124421"; 

final long number = 8860124421;

关于android - 使用 equalTo 条件在 Firebase 中查询不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40044219/

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