簡體   English   中英

如何使用 Firebase react native 獲取當前時間戳?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM