当我尝试创建新员工时收到错误消息(将数据输入到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' });
});
};
};
我了解到有很多“未定义的不是对象”错误案例,但是它们与我的案例经常有细微的差别,这使我感到困惑。我本人对本机很陌生,任何帮助都将不胜感激。
谢谢。
答案 0 :(得分:1)
您需要使用:
要求('@ firebase / database');
在EmployeeActions.js中