0
は、私は、ユーザーが作成し、ユーザーのリストにそのユーザを保存し、最終的にはユーザーのカウンタをインクリメントされるたびにトリガクラウド機能で関数を記述しようとしています。 しかし私は約束を正しく使用しているかどうかはわかりません。 Firebaseのクラウド機能:トランザクション約束の使い方
exports.saveUser = functions.auth.user().onCreate(event => {
const userId = event.data.uid
const saveUserToListPromise = db.collection("users").doc(userId).set({
"userId" : userId
})
var userCounterRef = db.collection("users").doc("userCounter");
const transactionPromise = db.runTransaction(t => {
return t.get(userCounterRef)
.then(doc => {
// Add one user to the userCounter
var newUserCounter = doc.data().userCounter + 1;
t.update(userCounterRef, { userCounter: newUserCounter });
});
})
.then(result => {
console.log('Transaction success!');
})
.catch(err => {
console.log('Transaction failure:', err);
});
return Promise.all([saveUserToListPromise, transactionPromise])
})
だから私は、このアウトを試してみましたが、これは私が欲しい機能を達成するための正しい方法であり、多くのユーザーが実際に存在する場合に、これはまだ動作するか私もわからない場合しかし、私は知らないだけで正常に動作します一度にその機能をトリガする。
あなたが私を助けてくれることを願っています。 ありがとうございます。
ああ大丈夫素敵なありがとうございます。物事をより洗練された「安全な」方法と考えています。 – Max