firebase-admin nodejsスクリプトですべてのfirebaseトランザクションが完了していることを確認し、firebaseから正しく切断してnodejsスクリプトを終了しますか?すべてのトランザクションが完了したときにfirebase-admin nodejsスクリプトを正しく終了する方法
現在、firebase-admin nodejsスクリプトは、すべてのトランザクションが完了しても実行を継続します。
firebase-admin nodejsスクリプトですべてのfirebaseトランザクションが完了していることを確認し、firebaseから正しく切断してnodejsスクリプトを終了しますか?すべてのトランザクションが完了したときにfirebase-admin nodejsスクリプトを正しく終了する方法
現在、firebase-admin nodejsスクリプトは、すべてのトランザクションが完了しても実行を継続します。
DatabaseReference.transaction()
メソッドは、トランザクションが完了したときに実行される約束を返します。 Promise.all()
メソッドを使用すると、これらのトランザクションの約束が完了するまで待つことができ、process.exit()
を呼び出してプログラムを終了することができます。ここで
は完全な例である:
var admin = require("firebase-admin");
// Initialize the SDK
var serviceAccount = require("path/to/serviceAccountKey.json");
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: "https://<DATABASE_NAME>.firebaseio.com"
});
// Create two transactions
var addRef = admin.database().ref("add");
var addPromise = addRef.transaction(function(current) {
return (current || 0) + 1;
});
var subtractRef = admin.database().ref("subtract");
var subtractPromise = subtractRef.transaction(function(current) {
return (current || 0) - 1;
});
// Wait for all transactions to complete and then exit
return Promise.all([addPromise, subtractPromise])
.then(function() {
console.log("Transaction promises completed! Exiting...");
process.exit(0);
})
.catch(function(error) {
console.log("Transactions failed:", error);
process.exit(1);
});
何が起こっているか、あなたはすべての約束を追跡することだし、彼らが正常に完了した場合はアプリがアプリを殺すことができる、オープンな接続を維持していることで、
app.delete()
をたとえば、あなたがこれを行うことができ、デフォルトのアプリを使用する場合:
firebase.app().delete()
を使用して、