【问题标题】:firebase.auth(...).fetchProvidersForEmail is not a functionfirebase.auth(...).fetchProvidersForEmail 不是函数
【发布时间】:2017-03-08 11:24:27
【问题描述】:
我正在尝试从我的nodejs 服务器应用程序调用fetchProvidersForEmail。但它给了我错误:
firebase.auth(...).fetchProvidersForEmail 不是函数
我的简单nodejssn-p 是:
firebase.auth().fetchProvidersForEmail('foo@bar.com').then(function(){
console.log("OK");
});
我还发现节点库中有这个函数。 (Reference)
这里有什么问题?
【问题讨论】:
标签:
node.js
firebase
firebase-authentication
【解决方案1】:
我没有找到任何官方文档。但是,我发现 this thread 表明使用最新的 sdk 可以进行身份验证。 This thread 展示了如何做到这一点:
var clientApp = firebase.initializeApp({
apiKey: <API_KEY>,
authDomain: "<AUTH_DOMAIN_NAME>.firebaseapp.com",
databaseUrl: "https://<DATABASE_NAME>.firebaseio.com"
}, 'client');
// ...
var clientAuth = clientApp.auth(); // has methods for end-user authentication and account management
【解决方案2】:
您可能正在使用服务帐户初始化应用程序。您必须使用 apiKey 而不是 serviceAccount 对其进行初始化。当您使用 serviceAccount 进行初始化时,您可以验证 id 令牌并创建自定义令牌。对于 fetchProvidersForEmail 等客户端功能,您只需传递 apiKey 而无需服务帐户。