
当我知道Firebase中的以下结构中的“name”字段包含“efg”时,如何获取密钥“-KLpcURDV68BcbAvlPFy”.
clubs -KLpcURDV68BcbAvlPFy dept: "abc" desc: "xyz" name: "efg" -asdasdasddsad dept: "asda" desc: "asd" name: "adddd"我尝试了这个,但它返回了“俱乐部”
mDatabase.child("clubs").orderByChild("name").equalTo("efg").addListenerForSingleValueEvent(new ValueEventListener() { @OverrIDe public voID onDataChange(DataSnapshot dataSnapshot) { String clubkey =dataSnapshot.getKey();解决方法:
那是因为你正在使用ValueEventListener.如果查询匹配多个子节点,则返回所有这些子节点的列表.即使只有一个匹配的孩子,它仍然是一个列表.由于您在该列表上调用了getKey(),因此您将获得运行查询的位置的键.
要获取匹配子项的键,请遍历快照的子项:
mDatabase.child("clubs") .orderByChild("name") .equalTo("efg") .addListenerForSingleValueEvent(new ValueEventListener() { @OverrIDe public voID onDataChange(DataSnapshot dataSnapshot) { for (DataSnapshot childSnapshot: dataSnapshot.getChildren()) { String clubkey = childSnapshot.getKey();但请注意,如果您认为俱乐部名称是唯一的,您可以将俱乐部存储在他们的名下,并在没有查询的情况下访问正确的俱乐部:
mDatabase.child("clubs") .child("efg") .addListenerForSingleValueEvent(new ValueEventListener() { @OverrIDe public voID onDataChange(DataSnapshot dataSnapshot) { String clubkey = dataSnapshot.getKey(); // will be efg 总结 以上是内存溢出为你收集整理的android – 如何从firebase中的值获取密钥全部内容,希望文章能够帮你解决android – 如何从firebase中的值获取密钥所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)