在React Native的非根文件中导入firebase会导致Android模拟器中出错

时间:2018-06-16 20:09:00

标签: reactjs firebase react-native

我创建项目。

react-native init test

然后:

yarn add firebase

在react-native init进程之后,我在根目录中有index.js。内容:

import { AppRegistry } from 'react-native';
import App from './App';

AppRegistry.registerComponent('test', () => App);

在绝对工作的情况下导入firebase。

import { AppRegistry } from 'react-native';
import App from './App';
import firebase from 'firebase';

AppRegistry.registerComponent('test', () => App);

但是当我尝试在App.js中导入firebase时,

import React from 'react';
import { Text, View } from 'react-native';
import firebase from 'firebase'; // Anywhere in this file

class App extends React.Component {

    constructor(props) {

        super(props);

        const config = {
            // data from firebase portal
        };
        firebase.initializeApp(config);
    }

    render() {

        return (

                <View>
                    <Text>
                        Hello.
                    </Text>
                </View>

        );

    }
}

export default App;

我收到错误:

Objects are not valid as a React child (found: object with keys {$$typeof, type, key, ref, props, _owner, _store}). If you meant to render a collection of children, use an array instead.
throwOnInvalidObjectType...

此问题仅存在于Android模拟器中。在iOS模拟器中一切都很好。 Android Studio - 最新版本。 React native - 最新版本。 Firebase - 最新版本。

如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

在Firebase版本^ 5.3.1

导入Firebase:

import firebase from '@firebase/app'

为我工作!

答案 1 :(得分:1)

尝试安装5.0.2版。以管理员身份使用此命令:

npm install --save firebase@5.0.2

据我所知,目前的版本(5.0.4)是错误的!