开发者问题收集

对象作为 React 子对象无效(react-native)

2018-06-06
1927

我正在尝试在我的 React Native 项目中初始化 Firebase。

这是我遇到的错误

我正在初始化它的 App.js 的代码是

import React, {Component} from 'react';
import {View, Text} from 'react-native';
import {Provider} from 'react-redux';
import {createStore} from 'redux';
import reducers from './reducers';
import firebase from 'firebase';

class App extends Component {

  componentWillMount () {
    const config = {
      apiKey: "",
      authDomain: "",
      databaseURL: "",
      projectId: "",
      storageBucket: "",
      messagingSenderId: ""
    };
    firebase.initializeApp(config);
  }

  render() {
    return (
      <Provider store={createStore(reducers)}>
      <View>
        <Text>Hello! </Text>
      </View>
    </Provider>
    );
  }
}

export default App;

当我只包含 import firebase from 'firebase'; 并且不初始化 config 时,我甚至会遇到同样的错误>

2个回答

导出在版本 5.0.4 及更高版本中发生了变化。现在您需要这样做:

从“@firebase/app”导入 firebase

如果您使用 eslint,您可能会收到一个投诉,即它应该列在项目依赖项中,但您可以忽略它。

您可能还想使用 firebase 的实际功能,而不仅仅是核心导入。例如,要使用身份验证模块,您需要添加以下内容:

导入“@firebase/auth”

groksrc
2018-07-29

尝试在构造函数上初始化,而不是在 componentWillMount 上初始化

import React, {Component} from 'react';
import {View, Text} from 'react-native';
import {Provider} from 'react-redux';
import {createStore} from 'redux';
import reducers from './reducers';
import firebase from 'firebase';

class App extends Component {

 constructor(props){
    super(props)
    const config = {
      apiKey: "",
      authDomain: "",
      databaseURL: "",
      projectId: "",
      storageBucket: "",
      messagingSenderId: ""
    };
    firebase.initializeApp(config);
  }


  render() {
    return (
      <Provider store={createStore(reducers)}>
      <View>
        <Text>Hello! </Text>
      </View>
    </Provider>
    );
  }
}

export default App;
Bruno Mazzardo
2018-06-06