在 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 模拟器出错的主要内容,如果未能解决你的问题,请参考以下文章
如何在android studio中导入react native项目