android– 如何从firebase中的值获取密钥

android– 如何从firebase中的值获取密钥,第1张

概述当我知道Firebase中的以下结构中的“name”字段包含“efg”时,如何获取密钥“-KLpcURDV68BcbAvlPFy”.clubs-KLpcURDV68BcbAvlPFydept:"abc"desc:"xyz"name:"efg"-asdasdasddsaddept:"asda"desc:&q

当我知道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中的值获取密钥所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1102581.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存