Я пытаюсь написать облачную функцию Firebase, которая в настоящее время, по сути, выполняет две вещи:
1) срабатывает всякий раз, когда пользователь подключается / отключается
2) извлекает все разговоры для этот пользователь.
Приведенный ниже код может выполнить Шаг 1, но возвращает функцию, которая вернула неопределенное, ожидаемое обещание или значение Ошибка в консоли.
Я не уверен, как писать обещания, и это моя первая функция Firebase. Пожалуйста, помогите.
exports.offlineHandler = functions.database.ref('/users/{userid}/status')
.onUpdate((change, context) => {
const status = change.after.val();
const userId = context.params.userid;
console.log('the user is now ', status, "with mobile no ", userId);
// fetch a users conversations list
if (status === "offline") {
console.log("offline exec start");
return fetchUserConversations(userId)
.then(results => {
console.log("offline exec end");
for (result in results) {
console.log("id is", result);
}
return results;
}).catch(err => {
console.error("An error has occurred.", err);
return err;
});
} else {
console.log("user came online");
}
return null;
});
function fetchUserConversations(userId) {
return admin.firestore().collection('users/${userId}/conversations').get()
.then(snapshot => {
var conversations = [];
snapshot.forEach(doc => {
console.log("This is conversation id => ", doc.id);
conversations.concat(doc.id);
});
return conversations;
//return conversations;
}).catch(err => {
console.error(err);
return err;
});
}