慕尼黑8549860
2023-06-14 16:28:16
我正在嘗試在 Cloud Firestore 中添加文檔,但我需要用于timestamp添加文檔的服務(wù)器。文檔已成功添加到集合中,并帶有正確的timestamp. 我正在添加帶有警告對(duì)話(huà)框的文檔。但是當(dāng)我返回到我的活動(dòng)應(yīng)用程序時(shí),它會(huì)因以下錯(cuò)誤而終止: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) 的空對(duì)象引用上為了顯示文檔,我正在使用以下查詢(xún)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函數(shù)
TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超4個(gè)贊
您的代碼中的問(wèn)題是您的類(lèi)中時(shí)間戳字段的類(lèi)型與數(shù)據(jù)庫(kù)中的屬性UserLight
類(lèi)型不匹配。timestamp
看,在您的UserLight
班級(jí)中,時(shí)間戳字段的類(lèi)型是long
,這基本上是一個(gè)數(shù)字,而在數(shù)據(jù)庫(kù)中的類(lèi)型是Date
or?Timestamp
。請(qǐng)注意,兩者必須匹配。
因?yàn)樵?Cloud Firestore 中保存日期的正確方法是使用Date
orTimestamp
類(lèi),要解決這個(gè)問(wèn)題,只需將模型類(lèi)中的時(shí)間戳字段類(lèi)型更改為Date。
添加回答
舉報(bào)
0/150
提交
取消