1

我有一个这样的firebase配置文件:

import { firebase } from "@firebase/app";
import "@firebase/firestore";

const firebaseApp = firebase.initializeApp({
    apiKey: "myKey",
    authDomain: "myDomain",
    databaseURL: "myURL",
    projectId: "myProject",
    storageBucket: "myBucket",
    messagingSenderId: "999999999"
});

export const db = firebaseApp.firestore();
export const firebaseApp = firebaseApp;

我正在尝试对用户进行身份验证,但不断收到 firebaseApp.auth() 不是函数。

let me = db.collection('staff').where('email', '==', this.current_user.email)
    .get()
    .then((querySnapshot) => {
        querySnapshot.forEach((doc) => {
           this.fbUser = doc.id;
           let email = doc.data().email;
           let pw = doc.data().key;

           firebaseApp.auth().onAuthStateChanged(user => {
              if (user) {
                 //console.log('Already authenticated.');
              } else {
                 firebaseApp.auth().signInWithEmailAndPassword(email, pw)
                    .then(liu => {
                        //console.log('Logged in', liu.uid);
                        let uid = liu.uid;
                        this.$localStorage.set('fbId',this.fbUser, 0);
                        this.$localStorage.set('fbAuthId', uid, 0);
                        me.update({
                           is_active: true
                        });
                  });
              } // end if
          });
      });

我不需要配置应用程序吗?@firebase 中没有身份验证功能。

任何帮助表示赞赏。

4

1 回答 1

5

您应该auth在初始化中添加 Firebase 服务,如下所示:

import { firebase } from "@firebase/app";
import "@firebase/firestore";
import "@firebase/auth";  // <- NEW

const firebaseApp = firebase.initializeApp({
    apiKey: "myKey",
    authDomain: "myDomain",
    databaseURL: "myURL",
    projectId: "myProject",
    storageBucket: "myBucket",
    messagingSenderId: "999999999"
});

export const db = firebaseApp.firestore();
export const auth = firebaseApp.auth();  // <- NEW
export const firebaseApp = firebaseApp;

然后,在您的组件中,您执行以下操作:

auth.onAuthStateChanged(user => {})

auth.signInWithEmailAndPassword(email, pw)
于 2018-07-29T19:16:55.627 回答