Как мне сделать запрос равным длинному значению?

# #firebase #kotlin #firebase-realtime-database

Вопрос:

Я попытался сделать запрос из базы данных реального времени с помощью 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 длинные значения записываются в одну и ту же базу данных довольно успешно и без проблем.

введите описание изображения здесь введите описание изображения здесь

Ответ №1:

API базы данных в реальном времени на Android поддерживает только Double типы чисел. Однако базовый проводной протокол и база данных будут правильно интерпретировать длинные числа, поэтому вы должны быть в состоянии просто сделать:

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