我想使用React Context为我的React Application提供一个firebase实例。我写的Firebase类如下:
import firebase from "firebase/app";
import "firebase/auth";
const firebaseConfig = {
apiKey: process.env.REACT_APP_FIREBASE_API_KEY,
authDomain: process.env.REACT_APP_FIREBASE_AUTH_DOMAIN,
databaseURL: process.env.REACT_APP_FIREBASE_DB_URL,
projectId: process.env.REACT_APP_FIREBASE_PROJECT_ID,
storageBucket: process.env.REACT_APP_FIREBASE_STORAGE_BUCKET,
messagingSenderId: process.env.REACT_APP_FIREBASE_SENDER_ID,
appId: process.env.REACT_APP_FIREBASE_APP_ID
};
class Firebase {
constructor() {
firebase.initializeApp(firebaseConfig);
this.auth = firebase.auth();
}
// *** AUTH API ***
doCreateUserWithEmailAndPassword = (email, password) => {
this.auth.createUserWithEmailAndPassword(email, password);
};
doSignInWithEmailAndPassword = (email, password) => {
this.auth.doSignInWithEmailAndPassword(email, password);
};
doSignOut = () => this.auth.signOut();
doPasswordReset = email => this.auth.sendPasswordResetEmail(email);
doPasswordUpdate = password => this.auth.currentUser.updatePassword(password);
}
export default Firebase;
当我尝试使用电子邮件和密码登录时,出现以下错误:
TypeError: this.auth.doSignInWithEmailAndPassword is not a function
at Firebase.doSignInWithEmailAndPassword (firebase.js:27)
at SignInFormBase.onSubmit (SignIn.jsx:26)
at HTMLUnknownElement.callCallback (react-dom.development.js:147)
at Object.invokeGuardedCallbackDev (react-dom.development.js:196)
at invokeGuardedCallback (react-dom.development.js:250)
at invokeGuardedCallbackAndCatchFirstError (react-dom.development.js:265)
at executeDispatch (react-dom.development.js:571)
at executeDispatchesInOrder (react-dom.development.js:596)
at executeDispatchesAndRelease (react-dom.development.js:695)
at executeDispatchesAndReleaseTopLevel (react-dom.development.js:704)
at forEachAccumulated (react-dom.development.js:676)
at runEventsInBatch (react-dom.development.js:844)
at runExtractedEventsInBatch (react-dom.development.js:852)
at handleTopLevel (react-dom.development.js:5030)
at batchedUpdates$1 (react-dom.development.js:21469)
at batchedUpdates (react-dom.development.js:2247)
at dispatchEvent (react-dom.development.js:5110)
at react-dom.development.js:21526
at Object.unstable_runWithPriority (scheduler.development.js:255)
at interactiveUpdates$1 (react-dom.development.js:21525)
at interactiveUpdates (react-dom.development.js:2268)
at dispatchInteractiveEvent (react-dom.development.js:5086)
任何人都可以帮助我找出问题所在吗?
答案 0 :(得分:0)
应该是
doSignInWithEmailAndPassword = (email, password) => {
this.auth.signInWithEmailAndPassword(email, password);
};