रिएक्ट नेटिव ऐप में फायरबेस और फायरस्टोर दोनों को एकीकृत करने की आवश्यकता है, फायरबेस का उपयोग करने में सफलतापूर्वक सक्षम है और यह वास्तविक समय डीबी है लेकिन फायरस्टोर का उपयोग करने में सक्षम नहीं है। कंसोल में खाली डेटा लौटाना।

Npm पैकेज: npm install --save 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      {}

फायरस्टोर नियम

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

डेटाबेस संरचना:

enter image description here

0
Jatin Garg 18 अक्टूबर 2020, 12:28

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)
                })
            }) 
0
Jatin Garg 19 अक्टूबर 2020, 08:03