Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs firebase.on方法不会引发函数错误_Reactjs_Firebase_Firebase Realtime Database - Fatal编程技术网

Reactjs firebase.on方法不会引发函数错误

Reactjs firebase.on方法不会引发函数错误,reactjs,firebase,firebase-realtime-database,Reactjs,Firebase,Firebase Realtime Database,这就是我得到的错误 Uncaught TypeError:\u config\u fire\u WEBPACK\u IMPORTED\u MODULE\u 2\u.default.on不是一个函数 我的其他firebase函数,通常是firebase auth,执行得很好(不在此文件中)。我是不是输入错了? 我这样称呼它: /* eslint-disable react/no-unused-state */ /* eslint-disable new-cap */ /* eslint-disab

这就是我得到的错误
Uncaught TypeError:\u config\u fire\u WEBPACK\u IMPORTED\u MODULE\u 2\u.default.on不是一个函数

我的其他firebase函数,通常是firebase auth,执行得很好(不在此文件中)。我是不是输入错了? 我这样称呼它:

/* eslint-disable react/no-unused-state */
/* eslint-disable new-cap */
/* eslint-disable class-methods-use-this */
import React, { Component } from 'react';
import { Map } from 'immutable';
import fbase from '../config/fire';
import Entry from './leaderboard_entry';

class Leaderboard extends Component {
  constructor(props) {
    super(props);

    this.state = {
      users: Map(),
    };
  }

  initialize() {
    fbase.on('value', (snapshot) => {
      const newUserState = snapshot.val();
      this.setState({ users: Map(newUserState) });
    }, (error) => {
      console.error(error);
    });
  }
这是配置,如果你需要的话

import firebase from 'firebase';

const firebaseConfig = {
  apiKey: 
  authDomain: 
  databaseURL:
  projectId: 
  storageBucket: 
  messagingSenderId:
  appId: 
};

const fbase = firebase.initializeApp(firebaseConfig);

export default fbase;

详细信息已编辑。

错误是正确的,您试图在firebase上执行错误的操作。更新代码以访问并获取对数据路径的引用,然后可以挂接到on值:

fbase.database().ref('/some-path').on('value', (snapshot) => {
  const newUserState = snapshot.val();
  this.setState({ users: Map(newUserState) });
}, (error) => {
  console.error(error);
});
此外,您还需要为正在使用的任何模块执行静态导入:

import 'firebase/auth';
import 'firebase/database';

希望这有帮助

您需要导入firebase/firestore包

您的代码应该如下所示

import firebase from 'firebase';
import 'firebase/firestore';

const firebaseConfig = {
  apiKey: 
  authDomain: 
  databaseURL:
  projectId: 
  storageBucket: 
  messagingSenderId:
  appId: 
};

const fbase = firebase.initializeApp(firebaseConfig);

export default fbase;

谢谢你的回答!因此,我需要在我的配置中添加导入语句,并在我的fbase调用中指定数据库,对吗?是的,导入作为静态导入使用的模块,并调用database(),以及对存在的数据路径的引用。