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