亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

無法在 firestore 中按字符串查詢。RuntimeException 字段

無法在 firestore 中按字符串查詢。RuntimeException 字段

梵蒂岡之花 2023-03-09 14:57:20
我在 java 中使用 firestore for android 編寫小型應用程序。我正在嘗試按集合中的緯度字段進行查詢。我的集合中有一些用戶,應該由這個查詢返回——甚至瀏覽器中的 firestore 控制臺也會返回這些用戶。問題是我每次都會出錯:java.lang.RuntimeException:字段“緯度”不是 java.lang.String我的代碼:public Map<String, Object> getUsersBasedOnBounds2(LatLngBounds bounds){    db = FirebaseFirestore.getInstance();    Query query = db.collection(collection).whereGreaterThanOrEqualTo("latitude", (int)bounds.northeast.latitude);    query.get().addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {        @Override        public void onSuccess(QuerySnapshot queryDocumentSnapshots) {            Log.d(TAG, queryDocumentSnapshots.getDocuments().toString());            for (QueryDocumentSnapshot doc : queryDocumentSnapshots){                Log.d(TAG, doc.getString("latitude"));            }        }    });    return null;}我究竟做錯了什么?
查看完整描述

2 回答

?
LEATH

TA貢獻1936條經驗 獲得超7個贊

由于您要求 API 檢索String字段latitude,因此錯誤會通知您沒有latitude字段是 `String. 正如文檔所說:

RuntimeException如果值不是字符串則拋出。

該字段的值latitude可能存儲為數字,在這種情況下,您可以直接將其作為數字獲取。由于該值很可能存儲為雙精度值,因此可以通過調用來完成getDouble

doc.getDouble("latitude")

或者通過調用 將其作為通用值獲取get,并將其轉換為字符串:

String.valueOf(doc.get("latitude"))


查看完整回答
反對 回復 2023-03-09
?
慕妹3242003

TA貢獻1824條經驗 獲得超6個贊

由于您正在打印日志Log.d(TAG, doc.getString("latitude"));

而不是使用:

Log.d(TAG, String.valueOf(doc.getString("latitude")));


查看完整回答
反對 回復 2023-03-09
  • 2 回答
  • 0 關注
  • 120 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號