从本地反应连接到firebase

时间:2016-08-17 20:26:11

标签: firebase react-native firebase-realtime-database

我正在尝试使用firebase设置一个反应原生项目,但没有取得多大成功。配置数据从这里获取:https://console.firebase.google.com/project/my-project/overview,因此所有内容都会自动生成。

这是我的设置代码:

const config = { 
    apiKey: "[MY-API-KEY]",
    authDomain: "[MY-AUTH-DOMAIN]",
    databaseURL: "[MY-DATABASE-URL]",
    storageBucket: "[MY-STORAGE-BUCKET]"
}

const firebaseApp = firebase.initializeApp(config);
const usersRef = firebaseApp.database().ref('Users');

以后,在某些时候,如果我尝试运行它:

usersRef.set({ test: "sdfsdf" });

数据库中没有任何反应。我也无法从数据库中获取数据......

任何线索我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

从其他文件导入database引用对象时遇到类似问题。基本上,当您在同一个文件中执行firebase应用程序初始化时,执行onset方法时,这是有效的。但是一旦你尝试从另一个文件导入database,配置似乎就丢失了......我认为它与ReactNative如何捆绑javascript或类似的东西有关。这是我带来的解决方法:

<强> database.js

import * as Firebase from 'firebase'

let HAS_INITIALIZED = false

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

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

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

然后,在 whatever-file-you-want.js

import { getDatabase } from './database'

getDatabase().ref('...') // etc.