【问题标题】:How do I make a query equalto with a long value?如何使查询等于长值?
【发布时间】:2021-12-11 08:10:19
【问题描述】:

我尝试使用 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,long 值被非常成功地写入同一个数据库并且没有问题。

【问题讨论】:

    标签: firebase kotlin firebase-realtime-database


    【解决方案1】:

    Android 上的实时数据库 API 仅支持 Double 数字类型。不过,底层的有线协议和数据库会正确解释长数字,所以你应该可以这样做:

    database.getReference("VerifiedProducts")
      .orderByChild("barcode")
      .equalTo(b.toLong().toDouble()) // ?
      .get().addOnCompleteListener {
        ...
    

    【讨论】:

      猜你喜欢
      • 2020-05-29
      • 2019-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-11
      • 1970-01-01
      • 2020-12-18
      • 2018-08-07
      相关资源
      最近更新 更多