現在、Math.floor(Date.now() / 1000)
を使用してFirebaseのドキュメントに追加する正しいタイムスタンプ形式を取得していますが、タイムスタンプはタイムスタンプとしてではなく、数字として挿入されます。
以下に示すように(数字ではなくタイムスタンプとして)挿入します。
これは可能ですか?
単純に次の行を使用できます。
var myFirebaseFirestoreTimestampFromDate = firebase.firestore.Timestamp.fromDate(new Date());
.fromDate
はstaticメソッドfromstatic Timestamp classfromFirebase。
私はあなたが追加された日付をやっていることがわかるように、サーバータイムスタンプを使用し、それを強制するために以下のセキュリティルールを使用する方が良いでしょう。
セキュリティ規則
allow create: if request.resource.data.date_added == request.time &&
// other rules for the message body
クライアント側のJSコード
const message = {
date_added: firebase.firestore.FieldValue.serverTimestamp();
}
Firestoreに日付/タイムスタンプを保存するには、Date
オブジェクトを送信する必要があります。
たとえば、既存の日付を使用して、フィールドをnew Date("December 10, 1815")
に設定します
詳細情報が利用可能です ドキュメントで 。
つかいます
let lang = 'en-US' // you may use user's computer language: navigator.language || navigator.userLanguage
let d = new Date(date);
let options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric', hour:"numeric", timeZone:'short' };
firebase.database().ref('/thePathYouLikeToSave/date_added').set(d.toLocaleDateString(lang, options));
日付のその他のオプション ここで完全な詳細
Swift 4および5
タイムスタンプの日付の変換
let timestampFromDate = Timestamp(date: Date())
print(timestampFromDate)