javascript - Wat te retourneren vanuit een async functie in Firebase-functies?
Moet ik binnen de async-functie 'return await' gebruiken zodat de functie correct wordt voltooid, of is de onderstaande code prima?
const db = admin.firestore();
export const onUserCreate = functions.auth.user().onCreate(async event => {
try {
const user: User = {
userId: event.data.uid,
email: event.data.email
};
await db.doc(`users/${user.userId}`).set(user, {merge: true});
} catch (error) {
throw error;
}
});
Antwoord #1
Deze functie geeft al een belofte terug die pas wordt opgelost nadat jouw db.doc(...).set(..) zelf is opgelost. return await zou in dit geval overbodig zijn.
Dus ik denk dat je code prima is zoals hij is, maar het is eenvoudig genoeg dat er een mogelijke verbetering is om helemaal te vergeten async/await te gebruiken, en gewoon de promise direct terug te geven. Bijvoorbeeld: return db.doc(...).set(...), zonder de functie als async te declareren.