我正在尝试在我的本机应用上使用firebase。但它给出了一个错误。
我的App.js代码位于
之下import React, { Component } from 'react';
import { Text } from 'react-native';
import firebase from 'firebase';
export default class HelloWorldApp extends Component {
componentWillMount(){
firebase.initializeApp({
apiKey: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
authDomain: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
databaseURL: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
projectId: 'xxxxxxxxxxxxxxxxxxxx',
storageBucket: 'xxxxxxxxxxxxxxxxxxxxxxxxxxx',
messagingSenderId: 'xxxxxxxxxx'
})
}
render() {
return (
<Text>Hello world!</Text>
);
}
}
我该怎么办?感谢
答案 0 :(得分:15)
我今天有这个问题。我对源代码在5.0.3和5.0.4之间进行了比较,发现导出已更改。我还发现,如果将import语句更改为以下内容,则它可以与最新版本(5.3.0)一起使用:
import firebase from '@firebase/app'
如果您使用的是eslint,则可能会抱怨它应该列在项目依赖项中,但是您可以忽略它。
您可能还希望使用firebase的实际功能,而不仅仅是核心导入。例如,要使用身份验证模块,您需要添加以下内容:
import '@firebase/auth'
答案 1 :(得分:1)
我认为firebase@5.0.4存在问题。在命令行上运行npm install firebase@5.0.3。这为我解决了。
答案 2 :(得分:0)
I'm not sure what happened with this version firebase@5.0.4. I also faced this issue too. But there is a workaround to resolve this issue.
1st step: Remove your import statement: import firebase from 'firebase';
2nd step:
1. Create a local function like this:
initializeFirebase() {
const firebase = require("firebase");
// Initialize Firebase
var config = {
apiKey: 'apikey',
authDomain: 'domain.com',
databaseURL: 'databaseUrl',
projectId: 'projectId',
storageBucket: 'storageurl',
messagingSenderId: 'senderId'
};
firebase.initializeApp(config);
}
2. Call it in your componentDidMount()
componentDidMount() {
this.initializeFirebase();
}
Hope, it helps.
答案 3 :(得分:0)
这是Firebase 5.0.6版的一个问题,而降级到一个版本可以解决此问题。例如,尝试此
$ npm install --save firebase@5.0.4
如果5.0.4版本也不适用于您,请尝试4.9.1版,因为这是我正在使用的,它为我解决了此问题
$ npm install-保存firebase@4.9.1