如何创建并 运行 写入两个 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 是否可以跨两个数据库。