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

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

如何將 FieldValue.serverTimestamp() 轉換為 Kotlin/Java

如何將 FieldValue.serverTimestamp() 轉換為 Kotlin/Java

開心每一天1111 2023-06-08 20:21:43
我想保存在 Firestore 中創建帖子的日期,但我不想使用系統時間。相反,為了準確起見,我想使用服務器時間戳。所以我用來FieldValue.serverTimestamp()獲取服務器時間戳,但保存它的變量的數據類型是日期。那么我該如何投射FieldValue.serverTimestamp()到呢Date?下面是我的數據類的樣子data class MyModel( var timeStamp: Date,     constructor(): this(Calendar.getInstance().time, "") }PS:當我在數據類中將時間戳聲明為 FieldValue 時,出現以下錯誤:java.lang.RuntimeException:在類 com.google.firebase.firestore.FieldValue 上找不到要序列化的屬性
查看完整描述

3 回答

?
烙印99

TA貢獻1829條經驗 獲得超13個贊

您收到以下錯誤:

java.lang.RuntimeException:在類 com.google.firebase.firestore.FieldValue 上找不到要序列化的屬性

因為FieldValue不是受支持的數據類型。您應該使用Date類或任何其他擴展類的類Date,例如Timestamp類。

如何將 FieldValue.serverTimestamp() 轉換為 Kotlin/Java 日期類

無需進行任何轉換。在 Java 中甚至不需要初始化字段timeStamp。

編輯:

在 Kotlin 中,您應該使用如下值timeStamp在構造函數中初始化您的字段:null

data?class?MyModel(?
??????????????@ServerTimestamp
???????????????val?timeStamp:?Date??=?null)


查看完整回答
反對 回復 2023-06-08
?
隔江千里

TA貢獻1906條經驗 獲得超10個贊

模型類

data class MyModel(
        @get: PropertyName("timestamp") @set: PropertyName("timestamp") var timestamp: Date= Date()
    )

初始化時;

val model = MyModel().apply{ 
  this.timestamp to FieldValue.serverTimestamp()
}


查看完整回答
反對 回復 2023-06-08
?
qq_花開花謝_0

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

您可以使用一個對象來保存這個值,稍后在使用這個值時檢查對象的類型并使用它。據我所知,返回的數據類型是 Long,如果需要,您必須手動將其轉換為 Data。


這個代碼看起來像這樣,


替換這個


data class MyModel( var timeStamp: Date,


data class MyModel( var timeStamp: Object,

并且在任何地方使用它時timeStamp檢查它的類型。在java中它看起來像


if (timeStamp instanceof Long) {

    // change Long to Date

    //do this

}else{

    //do something else

}

timeStamp為本身設置值FieldValue.serverTimestamp()。


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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