response-native v0.32, протестированный на Android-устройстве с Wi-Fi
В базе данных Firebase нет правил auth, они открывают чтение и запись.
Учитывая следующую структуру файла:
|_ 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 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 доступна глобально во всех файлах, которые НЕ являются firebase var из оператора импорта (я мог бы написать import FooBar from 'firebase', глобальный var firebase все еще импортированы)