如何创建并 运行 写入两个 Firestore 的事务?
How can I create and run a transaction that writes to two Firestore?
我有两个应用程序,每个都属于不同的 firebase 项目。
我想用相同的事务写入两个 Firestore。
我该怎么做?
import admin from "firebase-admin";
const primaryFirebase = admin.initializeApp();
const secondaryFirebase = admin.initializeApp({ credential }, "secondary");
const primaryFirestore = primaryFirebase.firestore();
const secondaryFirestore = secondaryFirebase.firestore();
const bookId = "<book ID>";
const comment = { body: "some text" };
const primaryBookReference = primaryFirestore.collection("book").doc(bookId);
if ((await primaryBookReference.get()).exists) return;
const secondaryBookReference = secondaryFirestore.collection("book").doc(bookId);
if ((await secondaryBookReference.get()).exists) return;
// TODO: same transaction
await primaryBookReference.collection("comment").add(comment);
await secondaryBookReference.collection("comment").add(comment);
无法运行 跨 Firestore 实例进行交易。您将不得不找到另一种写入数据的方法,例如,您可能会检查 three-phase commit 是否可以跨两个数据库。
我有两个应用程序,每个都属于不同的 firebase 项目。
我想用相同的事务写入两个 Firestore。
我该怎么做?
import admin from "firebase-admin";
const primaryFirebase = admin.initializeApp();
const secondaryFirebase = admin.initializeApp({ credential }, "secondary");
const primaryFirestore = primaryFirebase.firestore();
const secondaryFirestore = secondaryFirebase.firestore();
const bookId = "<book ID>";
const comment = { body: "some text" };
const primaryBookReference = primaryFirestore.collection("book").doc(bookId);
if ((await primaryBookReference.get()).exists) return;
const secondaryBookReference = secondaryFirestore.collection("book").doc(bookId);
if ((await secondaryBookReference.get()).exists) return;
// TODO: same transaction
await primaryBookReference.collection("comment").add(comment);
await secondaryBookReference.collection("comment").add(comment);
无法运行 跨 Firestore 实例进行交易。您将不得不找到另一种写入数据的方法,例如,您可能会检查 three-phase commit 是否可以跨两个数据库。