0
Firebaseデータベースに追加された新しいアイテムの有効期限タイムスタンプを自動的に作成します。だから私は次の関数を書いた:Firebase関数:admin.database.ServerValue.TIMESTAMPを操作します。
exports.onCreateNewItem = functions.database.ref('/items/{item_id}').onCreate(event => {
var mergedUpdate = {};
mergedUpdate['expiration'] = admin.database.ServerValue.TIMESTAMP + 2678400000;
return event.data.adminRef.update(mergedUpdate);
})
しかし、それは動作しません。 /items/{item_id}/expiration
の値は"[object Object]2678400000"
ですが、31日後のタイムスタンプであると予想していました。
これは間違いありませんが、いくつかのニュアンスがあります。たとえば、 'Date.how()'と 'admin.database.ServerValue.TIMESTAMP'の値は同じであるとは保証されていません。つまり、 'Date.now()'は使用できず、例えばセキュリティルールで 'now'と正常に比較することはできません。だからあなたのアプローチはおそらく多くの場合には問題ありませんが、それはドロップインの代替ではありません。 –
差が分範囲内にある限り、私は大丈夫です。これは当てはまりませんか? – user2145097
Frankが彼のコメントで特定した時間の差は決して1秒を超えることはありません。 –