我試圖設置曆元公司的FireStore創建數據時,設定的FireStore時代。我正在使用ServerValue.TIMESTAMP
來獲得與實時數據庫中的結果類似的結果。如何使用服務器時
我不想通過使用設備時間System.getCurrentMillis
來設置它,因爲用戶可以更改該時間。
根據docs的更新需要做的,與問題的格式。這是我的代碼:
Map<String, Object> map = new HashMap<>();
map.put("timestamp", FieldValue.serverTimestamp());
reference.update(map);
這是結果在火力地堡Web控制檯:
我很驚訝它是在西班牙,這可能是在某些情況下,但時代有用是我追逐的。嘗試看到明亮的一面,並堅持下去,並認爲我看到了西班牙語網頁,所以我改變了頁腳選擇器的語言,它沒有改變。在這一點上,我假設在項目語言中設置。
回到劃時代的嘗試。考慮到我的項目是使用實時數據庫,以及,我嘗試設置它以這種方式:
Map<String, Object> map = new HashMap<>();
map.put("timestamp", ServerValue.TIMESTAMP);
reference.update(map);
它確實上傳的東西,但它只是無稽之談。
我想用劃時代的服務器端的時間戳是一個更好的標準方法,以後每個客戶端都可以將其轉化爲用戶帶來方便和語言環境。
能否時代被設定爲公司的FireStore服務器值?
UPDATE
答案標記爲正確引導我一些,我想和大家分享有趣的發現,讓其他人在同樣的情況可以受益於:
- 沒有必要由於
FieldValue.serverTimestamp()
是由數據庫處理的日期對象,所以我們在控制檯中看到的只是一種友好的方式來顯示它。 - 由於
FieldValue.serverTimestamp()
是一個日期對象,它可以按照任何其他時間戳進行排序,如果您將orderBy("timestamp", Query.Direction.DESCENDING)
添加到您的查詢(或Query.Direction.ASCENDING
)它將正確排序結果。 - 和關於所涉及的@ 34m0評論,這是正確的,客戶不應該照顧邏輯的設置創建或更新的時間,但它應該在函數來完成,特別是考慮更新需要在完成客戶端設置值。相反在執行寫入時,它可以直接設置實時數據庫是如何實現的,在公司的FireStore它可以通過使用
Map
整個對象來完成,但打破POJO目的。
你可以只找到客戶端道格對價值建議,或者你可以考慮使用雲功能。 – 34m0
@ 34m0我在此,只是讓你知道我已經更新我的問題 – cutiko