MobX and Firebase, TypeError: WEBPACK_IMPORTED_MODULE_0__firebase.b.ref is not a function

MobX and Firebase, TypeError: WEBPACK_IMPORTED_MODULE_0__firebase.b.ref is not a function

按下按钮时,将调用下面代码中的 recordUpvote 函数,并且 returns 此错误:

错误:类型错误:WEBPACK_IMPORTED_MODULE_0__firebase.b.ref 不是函数

我试过将此函数导出为函数和常量。作为常量导出时,'var Today = ' 的声明会引发错误。

我在此处包含了 onceGetUsers 函数,因为该函数确实有效。

import { db } from './firebase';
import moment from 'moment';

export const onceGetUsers = () =>
  db.ref('users').once('value');

export function recordUpVote(instr, user) {
  var today = moment().format('MMDDYYYY');

  var rootRef = db.ref('/votes/' +today+ '/' +instr+ '/');
  rootRef.child('voters').orderByChild('user').equalTo(user).on("value", function(snapshot) {

      console.log(snapshot.val());

      if(snapshot.val()==null){
        // Record the vote
        db.ref('/votes/' +today+ '/' +instr+ '/voters/').push({
          user: user
            }).then(()=>{
             db.ref('/users/'+user+ '/votes/' + today+ '/').push({
               instrument: instr,
               vote: 'up'
             }).then(()=>{
               db.ref('/votes/' +today+ '/' +instr+ '/upVotes').transaction(function(upVotes) {
                 return upVotes + 1
               });
             });
        });
       }

      snapshot.forEach(function(data) {
          if(data.key==null){
            // Record the vote
            db.ref('/votes/' +today+ '/' +instr+ '/voters/').push({
              user: user
                }).then(()=>{
                 db.ref('/users/'+user+ '/votes/' + today+ '/').push({
                   instrument: instr,
                   vote: 'up'
                 }).then(()=>{
                   db.ref('/votes/' +today+ '/' +instr+ '/upVotes').transaction(function(upVotes) {
                     return upVotes + 1
                   });
                 });
            });
          } else {
            console.log("This user already voted on this instrument on this day. Update chart.")
          }
      });
  });

}

正在使用 firebase.js 代码更新 post...

import firebase from 'firebase/app';
import 'firebase/auth';
import 'firebase/database';

const prodConfig = {
  };

const devConfig = {
  };

const config = process.env.NODE_ENV === 'production'
  ? prodConfig
  : devConfig;

if (!firebase.apps.length) {
  firebase.initializeApp(config);
}

const db = firebase.database();
const auth = firebase.auth();

export {
  db,
  auth,
};

我通过调用商店中的函数让它工作。例如...

store.js

var today = moment().format('MMDDYYYY');
db.chartUpdate(ActiveSymbol, today, User)

db.js

export const chartUpdate = (symbol, today, user) => (
  console.log(symbol, today, user)
)