我正在尝试使用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" });
数据库中没有任何反应。我也无法从数据库中获取数据......
任何线索我在这里做错了什么?
答案 0 :(得分:1)
从其他文件导入database
引用对象时遇到类似问题。基本上,当您在同一个文件中执行firebase应用程序初始化时,执行on
或set
方法时,这是有效的。但是一旦你尝试从另一个文件导入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.