firebase.auth()。createUserWithEmailAndPassword Undefined不是一个函数

我正在关注用户pipe理的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); }); }); 

我得到以下错误

 undefined is not a function TypeError: undefined is not a function at d:\Users\Kitty\Code\Practice2\routes\index.js:27:21 

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

我已经在Firebase上configuration了我的服务帐户和项目。 我在本地主机上运行。 谢谢。 我正在寻找主要的debugging技巧,因为我不知道如何testing什么不工作。

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

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

正如您所看到的,与Web API相比,firebase.auth.Auth在Node.js API上有很大的不同,因为那里没有太多内容。 现在,如果使用服务器API,则必须处理令牌,这一点我还没有深入了解。 另一方面,您可以使用Web API,它可以做你想做的事情。

更新
有时在firebase 3.4.1或之前的Node.js, createUserWithEmailAndPassword变得可用。

原版的
从Node.js的firebase 3.1.0开始,尚不支持createUserWithEmailAndPassword 。 根据谷歌Firebase的回应,并不是所有的平台在3.x库中都具有function奇偶性。 REST接口不支持用户创build,但显然与使用Node.js库不同。

访问https://groups.google.com/forum/#!forum/firebase-talk并searchcreateUserWithEmailAndPassword以获得最新的讨论&#x3002;

我不确定这是否正确,但有助于:

  1. 在console.firebase.google.com获取脚本:
 <script src="https://www.gstatic.com/firebasejs/live/3.0/firebase.js"></script> 

这可能是因为你定义错误为“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); }); });