Как получить ответ от функции Firebase на клиент в ионном - PullRequest
0 голосов
/ 16 декабря 2018

Я пытаюсь понять, как работает обещание с точки зрения ответа на стороне клиента от функции firebase, я приведу здесь очень простой пример:

Это ионный метод, сохраняющий некоторые данные, который затем запускаетфункция в пожарной базе:

helloworld() {
   this.db.list(`/helloWorld/${this.userId}`).push({status: false})
     .then(res => console.log(res))
}

Сработала функция пожарной базы

exports.helloWorld = database
 .ref('helloworld/{id}')
 .onWrite((change, context) => {
   const data = change.after.val();
   const id = context.params.id;

return admin
  .database()
  .ref(`/helloWorld/${id}`)
  .set({ status: true }).then((res) => res);

});

Here is the log from the helloworld method on client side, it seems is a database reference:

1 Ответ

0 голосов
/ 16 декабря 2018

Все функции фонового типа, включая триггеры базы данных реального времени, ничего не «возвращают» клиенту, который внес изменение.Единственное, что клиент знает, это то, что он внес изменение.

Обещание, возвращаемое фоновыми функциями, служит только одной цели - сообщить Cloud Functions, когда вся асинхронная работа с этой функцией завершена.Они ничего не сообщают клиенту.

Если вам нужна фоновая функция для доставки некоторой информации обратно клиенту, вам понадобится какой-то канал связи для этого.Функция может записывать обратно в базу данных в месте, согласованном с клиентом, или использовать Firebase Cloud Messaging для проверки связи с приложением.Не существует единственно правильного способа сделать это - вам придется придумать что-то, что соответствует вашим потребностям.

...