Я использую оболочку @react-native-firebase
для взаимодействия с Firebase Firestore. У меня есть функция, которая выполняет некоторые запросы к одной из моих коллекций, и предполагаемый ответ должен быть объектом Array, содержащим каждый найденный документ.
Моя функция в настоящее время выглядит так:
export const backendCall = async => {
let response = []
firestore()
.collection('collection')
.where('id', '==', 1)
.onSnapshot(documentSnapshot => {
documentSnapshot.forEach(x => response.push(x.data()))
})
return response
На моем Пользовательский интерфейс, я использую компонент react-native
Button
, который вызывает эту функцию onPress
:
<Button
title="get"
onPress={() => {
backendCall().then(response => console.log(response))
}}
/>
Используя console.log
, я могу наблюдать ожидаемый объект Array
(но со значением " ниже был оценен только что "значок. Однако если я изменю onPress
на console.log(JSON.stringify(response))
, объект Array
будет пуст.
Я предполагаю, что это как-то связано с asyn c звонит, но я не могу понять, как это исправить. Буду признателен за некоторые указатели.