2017-01-13 3 views

答えて

2

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); 
    }); 
0

何が起こっているか、あなたはすべての約束を追跡することだし、彼らが正常に完了した場合はアプリがアプリを殺すことができる、オープンな接続を維持していることで、

app.delete() 

をたとえば、あなたがこれを行うことができ、デフォルトのアプリを使用する場合:

firebase.app().delete() 
を使用して、
関連する問題