我们有一个使用Firebase v2的大型SPA。我们想升级到新的API,但我们遇到以下问题:
由于应用程序非常庞大,我们开发了许多集成测试,对于这些测试,我们总是需要重置数据库并将其初始化为某些用户所在的状态。但是,我们发现确实没有再在服务器上创建用户(Firebase createUserWithEmailAndPassword method is undefined in node.js),我们不确定如何升级API,但能够从服务器重置和初始化数据库。
此外,我们非常不得不进行此升级,因为我们注意到Firebase v2仍在使用已弃用的Graph API v2.0 for Facebook OAuth,建议不要在8.8.2016之后使用。我们知道Firebase v2可能不会升级对Graph API的调用,因为v2是遗留的。然而,这让我们现在陷入了绝境。
请问有关此主题的任何帮助吗?
答案 0 :(得分:5)
从Firebase v3.3.0起,您可以使用Node创建用户帐户,但文档在如何公开这些方法方面并不是很好。
要使用用户管理方法,您需要使用Web API密钥在节点中初始化应用程序,而不是在设置指南中浏览的服务帐户配置。
// The Usual Service Account Init
// This will not contain any user management methods on firebase.auth()
this.app = firebase.initializeApp(
{
serviceAccount: 'path/to/serviceaccount/file.json',
databaseURL: 'https://mydbfb.firebaseio.com'
},
'MyAppName');
// Web Client Init in Node.js
// firebase.auth() will now contain user management methods
this.app = firebase.initializeApp(
{
"apiKey": "my-api-key",
"authDomain": "somedomain.firebaseapp.com",
"databaseURL": "https://mydbfb.firebaseio.com",
"storageBucket": "myfbdb.appspot.com",
"messagingSenderId": "SomeId"
},
'MyAppName');
您可以从网络安装指南中从Firebase控制台获取客户端API密钥 https://firebase.google.com/docs/web/setup
这是我能找到的唯一一个明确引用了使用api键初始化init以使其工作的参考。 https://groups.google.com/forum/#!msg/firebase-talk/_6Rhro3zBbk/u8hB1oVRCgAJ
答案 1 :(得分:1)
以下是通过Node.js
创建Firebase用户的工作示例exports.addUser = function(req, res) {
var wine = req.body;
var email = req.body.email;
console.log(req.body);
var password = req.body.password;
var name = req.body.name;
console.log(“Creating user for -“+email+”-“+password);
var defaultAuth = admin.auth();
admin.auth().createUser({
email: email,
emailVerified: false,
password: password,
displayName: name,
disabled: false
})
.then(function(userRecord) {
console.log(“Created Firebase User successfully with id :”, userRecord.uid);
var wine = req.body;
wine.userId = userRecord.uid;
wine.timestamp = Date.now();
delete wine.password;
status = “201”;
var reply = JSON.stringify(wine);
db.collection(‘collname’, function(err, collection) {
collection.insert(wine, {safe:true}, function(err, result) {
if (err) {
wine.status = “200”;
wine.message = “An error occured”;
reply.set(‘status’,”201″);
res.status(201).send(wine);
} else {
console.log(‘Success: ‘ + JSON.stringify(result[0]));
status= “200”;
wine.status = “200”;
wine.message = “Account created Successfully”;
res.status(200).send(wine);
}
});
});
})
.catch(function(error) {
wine.message = “An error occured—“;
wine.status = “201”;
console.log(“User Creation onf Firebase failed:”, error);
res.status(201).send(wine);
});
}
有关详细信息,您可以看到以下博文
由于