18

[email protected]Firebase 3.3 वास्तविक समय डेटाबेस के साथ "एक कनेक्शन का प्रयास बनाना" के लिए अटक प्रतिक्रिया मूल निवासी 0.32

प्रतिक्रिया देशी v0.32 वाईफाई

Firebase डाटाबेस के साथ Android डिवाइस पर परीक्षण किया कोई लेख नियम नहीं है, यह खुला पढ़ा और लिखना है।

निम्नलिखित फ़ाइल संरचना को देखते हुए:

|_ firebase.js 
|_ actions.js 

यह काम नहीं करता:

firebase.js

import firebase from 'firebase' 

const config = { 
    apiKey: "*****", 
    authDomain: "****", 
    databaseURL: "*****", 
    storageBucket: "*****", 
} 

firebase.database.enableLogging(true); 

export default firebase.initializeApp(config) 

actions.js

import firebase from './firebase' 

export const fetchData =() => { 
    const Data = firebase.database().ref('some/data') 
    Data.on('value', (snapshot) => { 
     console.log("snapshot", snapshot.val()) // never printed 
    }, (error) => { 
     console.error(error) 
    }) 
} 

डिबग आउटपुट

p:0: Browser went online. 
firebase-database.js:36 p:0: Listen called for /some/data default 
firebase-database.js:36 p:0: Making a connection attempt 

बाकी कुछ भी नहीं है ...


यह कार्य करता है (लेकिन यह एक समाधान नहीं है):

firebase.js

...same content as above... 

export default() => firebase.initializeApp(config) // we export a function instead to trigger the initialization when the app is ready 

actions.js

...same content as above... 
const Data = firebase().database().ref('some/data') // we "manually" trigger the initialization, it's obviously not a good solution since we can't initialize the app multiple times 

उत्पादन

p:0: Browser went online. 
firebase-database.js:36 p:0: Listen called for /some/data default 
firebase-database.js:36 p:0: Making a connection attempt 
firebase-database.js:36 p:0: Auth token refreshed 
firebase-database.js:36 getToken() completed. Creating connection. 
firebase-database.js:36 c:0:0: Connection created 

क्या मैं गलत यहाँ कर रहा हूँ? मैंने यह भी देखा है कि एक बार मैं import firebase from 'firebase', firebase चर सभी फाइलों में विश्व स्तर पर उपलब्ध है कि इंपोर्ट स्टेटमेंट (मैं import FooBar from 'firebase' लिखा जा सकता था, firebase वैश्विक वर अभी भी आयात किया जाता है)

+0

आप की कोशिश की है बंद कर देते हैं डिबग मोड? मुझे एक ही समस्या थी लेकिन यह केवल डीबग मोड में होती है। – Xeijp

+0

मैंने वास्तव में डीबग मोड चालू कर दिया क्योंकि कुछ भी नहीं हो रहा था, इसलिए दुर्भाग्य से ऐसा नहीं है। – Pcriulan

+2

आप कुछ भी गलत नहीं कर रहे हैं, नवीनतम फायरबेस और प्रतिक्रिया-मूल के बीच कुछ टूटा हुआ है (यह सामान्य हो सकता है लेकिन यह कहीं भी प्रलेखित नहीं लगता है)। "फायरबेस" के साथ मेरे लिए काम किया: "^ 3.1.0", "प्रतिक्रिया": "15.2.1", "प्रतिक्रिया-मूल": "^ 0.2 9.0"। –

उत्तर

1

के बाद से कोई भी नहीं लगता है से firebase वर नहीं है एक "आधिकारिक" जवाब है। यहाँ वैकल्पिक हल मैं के साथ आया था आलसी आरंभीकरण के कुछ प्रकार प्रदान करना है:

firebase.js

import Firebase from 'firebase' 

let _database = null 

const initFirebase =() => { 
    var config = { 
     apiKey: "*************", 
     authDomain: "************", 
     databaseURL: "**********", 
     storageBucket: "************", 
    } 

    Firebase.database.enableLogging(true) 
    Firebase.initializeApp(config) 
} 

export const getDatabase =() => { 
    if (!_database) { 
     initFirebase() 
     _database = Firebase.database() 
    } 
    return _database 
} 

फिर, कहीं भी आप की जरूरत database:

import { getDatabase } from './firebase' 

const methodThatNeedDatabase =() => { 
    getDatabase().ref('/some/ref') 
    ... 
} 
संबंधित मुद्दे