firebase.auth().createUserWithEmailAndPassword Undefined不是函数

Scr*_*tty 9 javascript node.js express firebase firebase-authentication

我正在关注有关用户管理的firebase文档

var firebase = require('firebase');

// Initialize Firebase
firebase.initializeApp({
    serviceAccount: "./<mysecreturledittedout>.json",
    databaseURL: "https://<mydatabaseurljusttobesafe>.firebaseio.com"
});

router.get('/create', function(req, res){
    var email = req.email;
    var password = req.password;
    firebase.auth().createUserWithEmailAndPassword(email, password).catch(function(err){ // LINE 27 CRASH
        var errorCode = err.code;
        var errorMessage = error.message;
        console.log("ERROR");
        console.log(errorCode, errorMessage);
    });
});
Run Code Online (Sandbox Code Playgroud)

我收到以下错误

undefined is not a function

TypeError: undefined is not a function
    at d:\Users\Kitty\Code\Practice2\routes\index.js:27:21
Run Code Online (Sandbox Code Playgroud)

从做一点研究,我认为undefined不是一个函数,基本上是一个javascript版本的空指针异常(可能是错误的)

我在firebase上配置了我的服务帐户和项目.我在localhost上运行它.谢谢.我主要是寻找调试技巧,因为我不确定如何测试不起作用的东西.

小智 6

如果你还没有解决问题,我发现它为什么会出现这样的错误,那是因为它确实不是一个函数.

当您需要使用服务器参考时,您将使用Web参考作为指南:https://firebase.google.com/docs/reference/node/firebase.auth.Auth.

正如您所看到的,与Web API相比,firebase.auth.Auth在Node.js API上有很多不同,因为其中没有很多.现在,如果使用Server API,您必须处理我没有深入研究过的令牌.另一方面,您可以使用Web API,它可以执行您打算执行的操作.


Col*_*lin 0

这可能是因为您将错误定义为“err”,但在 errorMessage 下,代码是“error.message”?不太确定,但尝试一下,看看是否可以解决:

var firebase = require('firebase');

// Initialize Firebase
firebase.initializeApp({
    serviceAccount: "./<mysecreturledittedout>.json",
    databaseURL: "https://<mydatabaseurljusttobesafe>.firebaseio.com"
});

router.get('/create', function(req, res){
    var email = req.email;
    var password = req.password;
    firebase.auth().createUserWithEmailAndPassword(email, password).catch(function(error){ 
        var errorCode = error.code;
        var errorMessage = error.message;
        console.log("ERROR");
        console.log(errorCode, errorMessage);
    });
});
Run Code Online (Sandbox Code Playgroud)