Google cloud firestore 如何在cloud firestore中回滚操作?
我创建了一个云函数来更新数据库中文档中的一个字段。但是我知道实际值被替换为NaN,我知道这个链接中的内容是什么。但是我想回滚该操作,以便该字段返回其值。这怎么可能呢?您可以尝试编写新的更新。如果成功,您的Google cloud firestore 如何在cloud firestore中回滚操作?,google-cloud-firestore,google-cloud-functions,Google Cloud Firestore,Google Cloud Functions,我创建了一个云函数来更新数据库中文档中的一个字段。但是我知道实际值被替换为NaN,我知道这个链接中的内容是什么。但是我想回滚该操作,以便该字段返回其值。这怎么可能呢?您可以尝试编写新的更新。如果成功,您的。然后可以解决承诺,函数可以结束。如果失败,请在.catch中添加一些行,以使用change.before.data()更新文档 然后,文档将返回到其以前的值 下面是一些示例代码 const admin = require('firebase-admin'); const functions =
。然后
可以解决承诺,函数可以结束。如果失败,请在.catch
中添加一些行,以使用change.before.data()更新文档
然后,文档将返回到其以前的值
下面是一些示例代码
const admin = require('firebase-admin');
const functions = require('firebase-functions');
admin.initializeApp();
const firestore = admin.firestore();
exports.myFunction = functions.firestore
.document('myCollection/{myDocumentId}')
.onUpdate((change, context) => {
const newValue = change.after.data();
const oldValue = change.before.data();
let myChanges = {
// Update a value
};
return change.after.ref.update(myChanges)
.then(() => {
console.log('Document updated successfully');
return Promise.resolve();
})
.catch(() => {
// The update failed and the document needs to be rolled back
return change.before.ref.set(oldValue);
})
.then(() => {
console.log('Document was rolled back');
return Promise.resolve();
})
.catch(err => {
console.error(err);
return Promise.reject(err);
});
});
在尝试写入之前,是否可以检查该值是否为数字?也许你可以在你的问题中添加一些示例代码。是的,它是一个数字。@JasonBerryman,让我们假设它不是一个数字,在操作后,该值被NaN替换,因为我意识到错误,我想将Opartion回滚到其原始值。