0

다음 기능은 쉘로 테스트 할 때 잘 작동하며 데이터는 파이어 스토어에서 생성됩니다. 찌르기에서 밀 때, Function execution took 60002 ms, finished with status: 'timeout'Firebase 클라우드 기능 제한 시간

어떤 입력이라도?

exports.synchronizeAzavista = functions.auth.user().onCreate(event => { 

    console.log('New User Created'); 

    const user = event.data; 
    const email = user.email; 
    const uid = user.uid; 

    return admin.database().ref(`/delegates`) 
     .orderByChild(`email`) 
     .equalTo(email) 
     .once("child_added").then(snap => { 
      const fbUserRef = snap.key; 

      return admin.firestore().collection(`/users`).doc(`${fbUserRef}`).set({ 
       email: email, 
       uid: uid 
      }).then(() => console.log("User Created")); 
     }); 
}); 

편집

나는 다음에 내 코드를 업데이트했습니다,하지만 난 여전히 Function returned undefined, expected Promise or value을 받고 있지만 어디에 내 함수 반환 정의되지 않은 내가 식별 할 수 없습니다. 내 getUser() 함수가 아무 것도 반환하지 않는 이유는 무엇입니까?

const admin = require('firebase-admin'); 

admin.initializeApp(functions.config().firebase); 

exports.synchronizeAzavista = functions.auth.user().onCreate(event => { 

    console.log('New User Created');//This log 

    const user = event.data; 
    const email = user.email; 
    const uid = user.uid; 

    console.log('Const are set');//This log 

    getUser(email).then(snap => { 

     console.log("User Key is " + snap.key);//No log 

     const fbUserRef = snap.key; 

     return admin.firestore().collection(`/users`).doc(`${fbUserRef}`).set({ 
      email: email, 
      uid: uid 
     }); 
    }).then(() => console.log("User Data transferred in Firestore")); 
}); 

function getUser(email) { 

    console.log("Start GetUser for " + email);//This log 

    const snapKey = admin.database().ref(`/delegates`).orderByChild(`email`).equalTo(email).once("child_added").then(snap => { 
     console.log(snap.key);//No Log here 
return snap; 
    }); 
    return snapKey; 
} 

답변

2

필자는 Firestore에 대한 약속을 반환하지 않습니다.

exports.synchronizeAzavista = functions.auth.user().onCreate(event => { 
    const user = event.data; 
    const email = user.email; 
    const uid = user.uid; 

    return admin.database().ref(`/delegates`) 
     .orderByChild(`email`) 
     .equalTo(email) 
     .once("child_added").then(snap => { 
      const fbUserRef = snap.key; 

      return admin.firestore().collection(`/users`).doc(`${fbUserRef}`).set({ 
       email: email, 
       uid: uid 
      }); 
     }); 
}); 
+0

감사합니다. @ 프랭크, 그럼 그때() 그 약속 (세트) 죽일 의미합니까? – Benoit

관련 문제