addDeposit(account, deposit) {
let depositsDoc = this.db.collection("accounts")
.doc(account.id)
.collection("deposits")
.doc("deposits");
return new Promise((resolve, reject) => {
deposit.created_at = firebase.firestore.FieldValue.serverTimestamp();
depositsDoc.update({
"deposits": firebase.firestore.FieldValue.arrayUnion(deposit)
})
.then((a) => {
resolve('success');
})
.catch((error) => {
reject("failed");
});
})
.then((res) => {
return res;
})
.catch((error) => {
return error;
})
}
**带角度的Firestore(使用默认的Firebase SDK而不是angularfire)**
我试图通过直接添加调用时间戳的“ created_at”属性来将时间戳添加到存款对象。这样,我得到上面标题中的错误。 如何在Firestore中的对象数组中为对象添加时间戳?
答案 0 :(得分:5)
使用此
let deposit.created_at= firebase.firestore.Timestamp.now();
更多信息,请访问https://firebase.google.com/docs/reference/js/firebase.firestore.Timestamp#now
答案 1 :(得分:0)
您不能使用FieldValue.serverTimestamp()
作为要在文档字段的数组类型值中进行联合(添加)或从中删除的值。如果要使用该时间戳记值,则需要将其直接传递到要更新或设置的字段。
您必须考虑另一种结构化数据的方式,既可以满足您的需求,又可以满足Firestore的要求。