未定义不是函数(评估'_app.default.database()')

时间:2019-02-18 13:19:38

标签: firebase react-native react-native-router-flux

当我尝试创建新员工时收到错误消息(将数据输入到Firebase的数据库中,请注意,这与身份验证选项卡中的电子邮件/密码登录无关)。仅在单击“提交”按钮(该按钮应将用户输入的数据输入数据库)后,问题才会出现。此外,由于电子邮件/密码的注册和登录正常,我应该已经连接到Firebase。

像这样在android模拟器的屏幕上显示错误: undefined is not a function (evaluating '_app.default.database()')

此后的一行还指出:D:\Programs\reactnative\manager\src\actions\EmployeeActions.js:20:2

处有错误

从gradle信息中,这些是我在实践中使用的:

"@babel/runtime": "^7.3.1",
"firebase": "^4.9.1",
"react": "16.6.3",
"react-native": "0.58.4",
"react-native-router-flux": "^3.45.0",
"react-redux": "^6.0.0",
"redux": "^4.0.1",
"redux-thunk": "^2.3.0"

这是我在EmployeeActions.js中的代码,我认为该代码涉及此错误:

import firebase from '@firebase/app';
import '@firebase/auth';
import { Actions } from 'react-native-router-flux';
import {
  EMPLOYEE_UPDATE,
  EMPLOYEE_CREATE
} from './types';

export const employeeUpdate = ({ prop, value }) => {
  return {
    type: EMPLOYEE_UPDATE,
    payload: { prop, value }
  };
};

export const employeeCreate = ({ name, phone, shift }) => {
  const { currentUser } = firebase.auth();

return (dispatch) => {
  firebase
  .database()
  .ref(`/users/${currentUser.uid}/employees`)
    .push({ name, phone, shift })
    .then(() => {
      dispatch({ type: EMPLOYEE_CREATE });
      Actions.employeeList({ type: 'reset' });
    });
  };
};

我了解到有很多“未定义的不是对象”错误案例,但是它们与我的案例经常有细微的差别,这使我感到困惑。我本人对本机很陌生,任何帮助都将不胜感激。

谢谢。

1 个答案:

答案 0 :(得分:1)

您需要使用:

要求('@ firebase / database');

在EmployeeActions.js中