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

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

在 Firestore 中獲取服務器時間戳時出錯

在 Firestore 中獲取服務器時間戳時出錯

慕尼黑8549860 2023-06-14 16:28:16
我正在嘗試在 Cloud Firestore 中添加文檔,但我需要用于timestamp添加文檔的服務器。文檔已成功添加到集合中,并帶有正確的timestamp. 我正在添加帶有警告對話框的文檔。但是當我返回到我的活動應用程序時,它會因以下錯誤而終止:java.lang.RuntimeException: java.lang.reflect.InvocationTargetException ....... E/AndroidRuntime: Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.Date com.google.firebase 原因: .Timestamp.toDate()' 在 com.sasam.virtuallibrary.Models.UserLight.setTimestamp(UserLight.java:103) 的空對象引用上為了顯示文檔,我正在使用以下查詢Query query= FirebaseFirestore.getInstance()                .collection("Users")                .document(user.getUid())                .collection("friends")                .orderBy("timestamp", Query.Direction.DESCENDING);我的課在這里public class UserLight{    protected String name;    protected String email;    protected String uid;    protected Float rating;    protected String photoUrl;    protected long timestamp;    public UserLight(){    }    //other getters and setters    @Exclude    public long getTimestampLong(){        return timestamp;    }    public FieldValue getTimestamp() {        return  FieldValue.serverTimestamp();    }    public void setTimestamp(Timestamp timestamp) {        this.timestamp = timestamp.toDate().getTime();    }}
查看完整描述

1 回答

?
HUH函數

TA貢獻1836條經驗 獲得超4個贊

您的代碼中的問題是您的類中時間戳字段的類型與數據庫中的屬性UserLight類型不匹配。timestamp看,在您的UserLight班級中,時間戳字段的類型是long,這基本上是一個數字,而在數據庫中的類型是Dateor?Timestamp。請注意,兩者必須匹配。

因為在 Cloud Firestore 中保存日期的正確方法是使用DateorTimestamp類,要解決這個問題,只需將模型類中的時間戳字段類型更改為Date。

查看完整回答
反對 回復 2023-06-14
  • 1 回答
  • 0 關注
  • 185 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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