【问题标题】:Why do I receive an error stating onAuth is not a Function?为什么我会收到一条错误消息,指出 onAuth 不是函数?
【发布时间】:2019-08-18 05:30:28
【问题描述】:

我是一款适合新 Firebase SDK 的应用。它编译没有问题,但应用程序不会显示,因为我通过控制台收到一个错误,即 stats onAuth 不是函数

我在这里完成了升级过程:https://firebase.google.com/support/guides/firebase-web

似乎无法让它工作

'use strict';

import Reflux from 'reflux';
import update from 'react-addons-update';
import Actions from '../actions/Actions';
require('firebase/auth');
require('firebase/database');
require('firebase/firestore');

var config = {
    apiKey: 'XXXXX',
    authDomain: 'XXXXXX',
    databaseURL: 'XXXXXX'
};

firebase.initializeApp(config);

const baseRef =  firebase.database().ref();
const usersRef = baseRef.child('users');

const defaultUser = {
    uid: '',
    username: '',
    upvoted: null,
    submitted: null,
    isLoggedIn: false,
    md5hash: null,
    latestPost: null
};

let currentUser = Object.assign({}, defaultUser);

const UserStore = Reflux.createStore({

    listenables: Actions,

    init() {
        // triggered by auth changes
        baseRef.onAuth((authData) => {
            if (!authData) {
                // user is logged out
                usersRef.off();
                this.logoutCompleted();
            } else {
                // user is logged in
                this.loginCompleted(authData.uid);
            }
        });
    },

    logout() {
        baseRef.unauth();
    },

【问题讨论】:

    标签: javascript reactjs firebase firebase-authentication refluxjs


    【解决方案1】:

    baseRef 是一个引用类型对象:

    const baseRef =  firebase.database().ref();
    

    从 API 文档中可以看出,Reference 没有名为 onAuthunauth 的方法。不确定您要在这里做什么,但它显然没有遵循记录的 API。

    【讨论】:

    • 已弃用。当你可以调用 firebaseURL 并且 onAuth 是一个工作函数时,它曾经工作过
    • 我想说它不仅被弃用,而且被完全删除。您需要使用提供的 API 编写替代方案。
    猜你喜欢
    • 2015-09-18
    • 2015-01-25
    • 1970-01-01
    • 2020-08-08
    • 1970-01-01
    • 2021-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多