firebase - 如何使查询等于长值?
问题描述
我尝试使用 equalTo() 从实时数据库中进行查询。
database.getReference(verifiedProductsDb.dbPartVerifiedProducts).order By Child(verifiedProductsDb.barcode).equalTo(b.toLong()).get().addOnCompleteListener {
但是android studio给出了:
None of the following functions can be called with the argument supplied.
equalTo(Boolean) defined in com.google.firebase.database.Query
equalTo(Double) defined in com.google.firebase.database.Query
equal To(String?) defined in com.google.firebase.database.Query
尽管使用 setValue,长值被非常成功地写入同一个数据库并且没有问题。
解决方案
Android 上的实时数据库 API 仅支持Double
数字类型。底层的有线协议和数据库将正确解释长数字,所以你应该能够做到:
database.getReference("VerifiedProducts")
.orderByChild("barcode")
.equalTo(b.toLong().toDouble()) //
.get().addOnCompleteListener {
...
推荐阅读
- c# - IEnumerable 文件比较
- javascript - 我应该在我的 ajax jquery 请求的 URL 部分放什么?URL不断返回未定义
- sparql - 如何检索任意维基数据项目列表的所有属性
- javascript - 如何从 for 语句中的异步回调中获取结果
- sql - 在 SQL Server 的维护计划中添加 T-SQL
- office365 - 将办公应用程序作为 iframe 集成到我的 Web 应用程序中
- javascript - 我们可以在单个类中使用 this.props.map 和 this.props.navigation 导航到另一个屏幕吗
- android - 我们可以在不向其中插入数据的情况下更新 sqlite 表吗?
- javascript - 改变异步验证器的运行方式
- ios - 同时下载多个 HLS 音频文件失败