android 数组保存元素,Firestore:在android中查询数组中的所有元素

小编典典

尽管Cloud Firestore可以存储阵列,但可以 it does not support 查询阵列成员或更新单个阵列元素。

如果只想获取整个papers数组,则需要Map像这样迭代:

Map map = documentSnapshot.getData();

for (Map.Entry entry : map.entrySet()) {

if (entry.getKey().equals("Phonenumbers")) {

Log.d("TAG", entry.getValue().toString());

}

}

但是请注意,即使Phonenumbers对象作为数组存储在数据库中,也entry.getValue()将返回ArrayList,而不是array。

仅当使用一个以上的属性查询数据库时,才需要使用索引。但事实并非如此。

如果考虑使用这种替代数据库结构,则更好的方法是,其中每个电话号码都是地图中的键,所有值都为true:

Phonenumbers: {

"987654321": true,

"123456789": true,

"234567890": true

}

编辑2018年8月13日:

根据有关数组成员资格的更新文档,现在可以使用whereArrayContains()方法基于数组值过滤数据。一个简单的例子是:

CollectionReference citiesRef = db.collection("cities");

citiesRef.whereArrayContains("regions", "west_coast");

该查询返回每个城市文档,其中region字段是包含west_coast的数组。如果数组具有您查询的值的多个实例,则该文档仅包含在结果中一次。

2020-11-01

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值