Each then() should return a value or throw when using Promises
Just avoid the Promise
constructor antipattern! If you don't call resolve
but return a value, you will have something to return
. The then
method should be used for chaining, not just subscribing:
outer.get('/account', function(req, res) {
var id = req.user.uid
var userRef = firebase.db.collection('users').doc(id)
var profilePromise = userRef.get().then(doc => {
if (doc.exists) {
var profile = doc.data()
profile.id = doc.id
return profile // I assume you don't want to return undefined
// ^^^^^^
} else {
throw new Error("Profile doesn't exist")
// ^^^^^
}
})
// More promises further on, which I wait for:
// profilePromise.then(myProfile => { … });
})
Add at the end of the then()
return null
That's it.
Each then() should return a value or throw Firebase cloud functions