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

Posted

技术标签:

【中文标题】在 React Native 的非根文件中导入 firebase 会导致 Android 模拟器出错【英文标题】:Importing firebase in non-root file of React Native causes error in Android emulator 【发布时间】:2018-11-26 05:35:02 【问题描述】:

我创建项目。

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...

这个问题只存在于安卓模拟器。在 ios 模拟器中一切正常。 android Studio - 最新版本。 反应原生 - 最新版本。 Firebase - 最新版本。

如何解决?

【问题讨论】:

【参考方案1】:

在 firebase 版本 ^5.3.1

导入火力基地:

import firebase from '@firebase/app'

为我工作!

【讨论】:

【参考方案2】:

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

npm install --save firebase@5.0.2

据我所知,当前版本 (5.0.4) 有问题!

【讨论】:

非常感谢,你让我开心。 )) 它有帮助。很明显,Firebase 5.0.4 版本确实有 bug。

以上是关于在 React Native 的非根文件中导入 firebase 会导致 Android 模拟器出错的主要内容,如果未能解决你的问题,请参考以下文章

如何在 React Native 中导入 i18next?

如何在android studio中导入react native项目

为啥我不能在 react native 中导入我的自定义组件

如何在swift中导入Objective c文件

如何在swift中导入Objective c文件

在 Cocoapod 中导入 Kotlin/Native 框架