【问题标题】:Firebase sometimes connecting, sometimes not connecting (React Native)Firebase 有时连接,有时不连接(React Native)
【发布时间】:2016-08-21 00:45:18
【问题描述】:

我有一个非常令人困惑的问题。我一直在使用 Firebase 和 React Native,它一直运行良好,但最近有时当我启动它连接的应用程序时,有时当我这样做时却没有..

我认为这可能与我连接数据库的方式有关。我在一个简单的 javascript 文件中执行此操作,然后当我想引用数据库时,我会在整个应用程序的不同视图上调用该文件。如果不不断地重新初始化,我真的不确定如何做到这一点,所以我想我可以这样做一次并将其存储在一个变量中。

这是我用来初始化的代码..没什么特别的..确切地说要使用什么(显然为了这篇文章而删除了密钥文件):

console.log("Global Variable File!")
console.log("This is also where all of our intialization stuff is")

//Connection Stuff
const firebase = require("firebase");


 const firebaseConfig = {
    apiKey: "",
    authDomain: "",
    databaseURL: "",
    storageBucket: "",
  };
const firebaseObject = firebase.initializeApp(firebaseConfig);
console.log("===Firebase Intialized===");
//TODO - Remove me
firebaseObject.database().ref().child('testConnect').push({ title: "Summer2016" });


module.exports = {
  firebaseObject
}

我推送一个对象只是为了验证我的连接,有时它会被添加到数据库中。有时它不会。我还在整个应用程序中进行数据库引用。有时有效,有时无效

我怀疑这与本机反应或我尝试在多个文件中使用相同对象的方式有关..但我不确定该怎么做。

感谢您的帮助!

【问题讨论】:

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


    【解决方案1】:

    我遇到了同样的问题,似乎不应该在模块级别处理配置,而是在应用程序准备好后执行。您可以在以后手动触发的方法中设置配置。由于记住调用此方法可能很乏味,我想出了一个小包装器到 database 引用,以便在我们第一次调用 firebase.database() 构造函数时自动初始化应用程序:

    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.
    

    【讨论】:

    • 救了我的命!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-24
    • 2012-10-08
    • 1970-01-01
    • 1970-01-01
    • 2019-08-23
    相关资源
    最近更新 更多