火力地堡3.3.x的NodeJS - createUserWithEmailAndPassword不是一个函数
我已经看到了很多关于这个问题,但什么混淆我是firebase
的Xnodejs
的documentation有一个函数createUserWithEmailAndPassword()
。火力地堡3.3.x的NodeJS - createUserWithEmailAndPassword不是一个函数
每次我打印firebase.auth()
它不仅具有这些功能:
{
createCustomToken: [Function],
verifyIdToken: [Function],
INTERNAL:{
delete: [Function],
getToken: [Function],
addAuthTokenListener: [Function],
removeAuthTokenListener: [Function]
}
}
而且,同一文档的NodeJS下,该firebase.auth()说:
AUTH(APP)返回firebase.auth.Auth
获取默认应用程序或给定应用程序的Auth对象。
用法:
firebase.auth()firebase.auth(APP)
所以我认为叫firebase.auth()
将返回firebase.auth.Auth这理应包含createUserWithEmailAndPassword功能。
注意
是的,我用正确和firebase.initializeApp()
这是正常工作,即时通讯已经在做database
交易JSYK火力初始化。
的火力地堡的SDK的Node.js可以在两种模式(自3.3版本)工作:
-
作为服务器端的SDK,它发生在你初始化工作服务帐户
firebase.initializeApp({ serviceAccount: "myproject-3d9889aaeddb.json", databaseURL: "https://myproject.firebaseio.com" });
如果您使用服务帐户进行初始化(在3.2版及之前版本中可用的唯一选项),您的连接将自动以管理员身份进行身份验证,并且您将只有admin auth functionality可用:创建和ve rifying自定义令牌。
-
作为客户端SDK,当你初始化它的工作重点
firebase.initializeApp({ apiKey: "myprojectsApiKey", databaseURL: "https://myproject.firebaseio.com" });
如果您拥有API密钥(唯一可能的,因为3.3版本),你会发现初始化API,它发生可用client-side authentication methods。
它只是验证了这一点在我自己的项目:
var firebase = require("firebase");
firebase.initializeApp({
apiKey: "AI...Sc",
databaseURL: "https://stackoverflow.firebaseio.com"
});
firebase.auth().createUserWithEmailAndPassword("[email protected]", "firebase")
.then(user => console.log(user))
.catch(error => console.error(error));
的全部细节见this post on firebase-talk。
我在应用程序的初始化中删除了'serviceAccount',它工作正常。谢谢弗兰克,这是很多的帮助。 CENT1PEDE
我其实也不知道它是如何工作的,所以找出它很有趣。 –
我还没有检查过,但我的猜测是,'firebase.auth()'返回不同的对象,取决于用户/服务器是否通过身份验证。所以添加和/或删除'serviceAccount'会导致它。 再次感谢弗兰克。 – CENT1PEDE