[英]How to get current timestamp with Firebase react native?
好吧,我已經逐字跟蹤了這個問題Firebase TIMESTAMP 到日期和時間,並像這樣發布到我的 Firebase 數據庫:
function storeUserInfo(username, industry, role, color) {
if (username != null && industry != null && role != null && color != null) { //use for errors later
let timestamp = firebase.firestore.FieldValue.serverTimestamp();
let push = firebase.database().ref('users').push();
push.set({
name: username,
industry: industry,
role: role,
color: color,
date: new Date(timestamp.toDate()).toUTCString()
});
}
}
這給了我錯誤: timestamp.toDate() is not a function
我嘗試了其他幾種方法,如Firebase.ServerValue.TIMESTAMP
但需要獲取 Firebase 數據庫的當前格式化日期。 我怎樣才能做到這一點?
你在這里有一些問題。 首先,您嘗試寫入實時數據庫(通過firebase.database()
),但您嘗試使用 Firestore 的時間戳。 Firestore 和實時數據庫是具有不同 API 的不同數據庫。 Firestore 時間戳在這里對您沒有幫助。
如果您想獲得客戶端機器時鍾計算的日期,只需調用不帶參數的new Date()
。
push.set({
name: username,
industry: industry,
role: role,
color: color,
date: new Date().toUTCString()
});
我建議實際上只存儲一個整數而不是格式化的字符串 - 從長遠來看,這對你來說可能會更容易。
如果您想根據數據庫服務器的時間感寫入整數值,您可以改為使用ServerValue.TIMESTAMP ,它會在寫入到達服務器后立即獲取實際整數值:
date: firebase.database.ServerValue.TIMESTAMP
如果您實際上只是希望從 Firestore 的 Timestamp API 獲得服務器時間戳,那是不可能的,因為服務器時間戳只能在服務器上計算。 該錯誤告訴您在FieldValue.serverTimestamp()返回的FieldValue類型對象上沒有可用的toDate()
方法。 它不返回Timestamp 。 它返回一個令牌,您可以將其提供給 Firestore,用於解釋服務器上而非客戶端應用中的時間戳。 如果您想要該字段中的服務器時間戳,您應該直接將此令牌提供給 Firestore:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.