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
все еще импортированы)