возвращается null при извлечении данных из firebase с использованием expo - PullRequest
0 голосов
/ 07 января 2019

Я пытаюсь получить данные из firebase в моем приложении expo так что это компонент, где я реализую этот код:

import firebase from 'firebase';

// Initialize Firebase
var config = {
    apiKey: "AIzaSyAVf",
    authDomain: "d07f5.firebaseapp.com",
    databaseURL: "https://d07f5.firebaseio.com",
    projectId: "d07f5",
    storageBucket: "d07f5.appspot.com",
    messagingSenderId: "66392528"
  };
  firebase.initializeApp(config);

const api = 
    firebase.database().ref('/Barbers').on('value', (snapshot) => {
        console.log('testing')
        console.log(snapshot.val())
    });

  export default {
    getBarbersShops,
  }

когда я запускаю приложение на своем устройстве Android и вижу удаленную отладку с консоли браузера, я нахожу слово «тестирование», которое я пишу в консоли, но для этой консоли:

console.log(snapshot.val())

Я только что получил ноль за это и не могу понять почему?

и это изображение для коллекции в firebase:

enter image description here

Ответы [ 2 ]

0 голосов
/ 07 января 2019

Даг Стивенсонс ответ совершенно прав! Чтобы получить документ из firestore вact native, вы можете использовать следующий код:

import firebase from 'react-native-firebase'

myFunction(){
    firebase.firestore().collection('Barbers').doc('9R4t...').get().then(doc => {
       if(doc.exists){
          console.log(doc.data().name);  // testing
       }
    }
}

или асинхронно:

async myFunctionAsync(){
    const doc = await firebase.firestore().collection('Barbers').doc('9R4t...').get();

    if(doc.exists){
       console.log(doc.data().name);  // testing
    }
}
0 голосов
/ 07 января 2019

Вы получаете нулевое значение, потому что ваш код обращается к базе данных Firebase Realtime, но изображение ваших данных показывает, что оно хранится в Cloud Firestore. Это не одни и те же продукты - они не используют ни те же данные, ни те же API.

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