对象无效作为React子对象(找到的对象:带键的对象($$ typeof,type,key,ref,props,_owner,_store})

时间:2018-06-09 08:23:41

标签: firebase react-native ecmascript-6 react-native-android

我正在尝试在我的本机应用上使用firebase。但它给出了一个错误。 Image is here

我的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>
    );
  }
}

我该怎么办?感谢

4 个答案:

答案 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