Firebase возвращает неопределенное значение, когда код используется в методе провайдера - PullRequest
0 голосов
/ 10 декабря 2018

Я использую код firebase на ионной странице для извлечения значения из базы данных firebase, и это хорошо.

Я планировал переместить код firebase в класс провайдера и вызвать метод класса провайдера на моей ионной странице.Поэтому вместо вызова firebase со страницы я буду вызывать провайдера со страницы, а провайдер будет вызывать firebase.

Когда я реализую метод в провайдере, как показано ниже, и вызываю его с ионной страницы, провайдерметод возвращает неопределенное.Я предполагаю, что это из-за асинхронного характера firebase, и возвращение выполняется еще до того, как значение установлено.Как мне понять концепцию и исправить это?Я думал, что - вместо использования .on;я должен использовать .once, который вернет обещание, но не уверен, так как мне нужно поместить строку возврата вне кода / обещания firebase, так как мне сделать возврат в ожидании?

enter image description here

1 Ответ

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

Это решается с помощью .once и прямого возврата оператора следующим образом.Затем вызывающая сторона использует ключевое слово .then для извлечения данных из обещания.solution

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...