【问题标题】:Firestore React-Native not fetching DataFirestore React-Native 未获取数据
【发布时间】:2020-10-18 09:28:40
【问题描述】:

需要在 React 原生应用程序中集成 Firebase 和 Firestore,成功能够使用 Firebase 和它的实时数据库但不能使用 Firestore。 在控制台中返回空数据。

npm 包: npm install --save firebase

Firebase 参考

import * as firebase from 'firebase';

const config = {
    apiKey: "xxxx",
    authDomain: "xxx.firebaseapp.com",
    databaseURL: "https://xxxx.firebaseio.com",
    projectId: "xxxx",
    storageBucket: "xxx.appspot.com",
    messagingSenderId: "xxx",
    appId: "xxxx:web:xxxx",
    measurementId: "xxx"
  };

  const Firebase = firebase.initializeApp(config);
   
  export default Firebase;

表参考:

import {
    Firebase
} from '../firebase'

export const userTableReference = Firebase.database().ref('users') -> Working
export const healthTipReferences = Firebase.firestore().collection('HealthTips') -> Not working

获取值

export function getHealthTips() {
    return async (dispatch) => {
        try {
            healthTipReferences.onSnapshot(querySnapshot => {
                querySnapshot.forEach(doc => {
                    if (doc.exists) {
                        console.log(doc.data())
                    } else {
                        console.log('no doc')
                    }
                });
            })
        } catch (error) {
            console.log("*** Firebase - error setting document", { error })
        }
    }
}

回应:

[Sun Oct 18 2020 14:50:29.757]  LOG      {}
[Sun Oct 18 2020 14:50:29.758]  LOG      {}
[Sun Oct 18 2020 14:50:29.758]  LOG      {}

FireStore 规则

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if true;
    }
  }
}

数据库结构:

【问题讨论】:

    标签: database firebase react-native npm google-cloud-firestore


    【解决方案1】:

    有一个问题,我创建了数据库值的三层而不是一层 因此,根据我的层次结构,我需要修改我的查询。

    Collection -> id
    fields -> doc.Data()
    

    我为获取数据而编写的以下查询:

    const healthTipsRef = await healthTipReferences.get();
                healthTipsRef.forEach(categories => {
                    categories.ref.collection('Tips').onSnapshot(querySnapshot => {
                        querySnapshot.forEach(doc => {
                            finalData[categories.id] = doc.data()
                        })
                        console.log(finalData)
                    })
                }) 
    

    【讨论】:

      猜你喜欢
      • 2021-06-03
      • 2021-04-06
      • 2015-06-30
      • 1970-01-01
      • 2021-09-17
      • 2020-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多