下面是一个示例的代码,演示了如何使用 Firestore 的 Transaction 方法执行原子操作,并使用 add 方法向 Firestore 添加新文档。
const admin = require('firebase-admin');
const serviceAccount = require('path/to/serviceAccountKey.json');
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: 'https://your-project-id.firebaseio.com'
});
const firestore = admin.firestore();
// 使用 Transaction 方法执行原子操作
const transaction = firestore.runTransaction(async (t) => {
const docRef = firestore.collection('your-collection').doc('your-document');
// 读取文档数据
const doc = await t.get(docRef);
// 修改文档数据
const newNumber = doc.data().number + 1;
t.update(docRef, { number: newNumber });
return newNumber;
});
transaction
.then((newNumber) => {
console.log('Transaction successfully committed!', newNumber);
})
.catch((error) => {
console.log('Transaction failed:', error);
});
// 使用 add 方法向 Firestore 添加新文档
const data = {
name: 'John Doe',
age: 30,
email: 'johndoe@example.com'
};
firestore.collection('your-collection').add(data)
.then((docRef) => {
console.log('Document written with ID:', docRef.id);
})
.catch((error) => {
console.error('Error adding document:', error);
});
请注意,上述示例中的 "your-collection" 和 "your-document" 都是您自己的集合和文档名称,需要根据实际情况进行替换。
上一篇:不同的事务管理器如何处理@Transactional?
下一篇:不同的输出-列表