我是firebase管理员SDK中的新手并试图让我的angularjs应用程序工作,使用并执行here和this here步骤:
我已正确设置我的firebase管理员SDK并在节点服务器上的var admin = require("firebase-admin");
var serviceAccount = require("path/to/serviceAccountKey.json");
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: "https://<DATABASE_NAME>.firebaseio.com"
});
app.post('/.firebase-user', function (req, res, nex) {
admin.auth().getUser(req.body.uid)
.then(function (userRecord) {
// See the tables below for the contents of userRecord
console.log("Successfully fetched user data:", userRecord.toJSON());
})
res.status(200).send({data: userRecord.toJSON()});
return nex();
.catch(function (error) {
console.log("Error fetching user data:", error);
res.status(117);
return nex();
});
});
文件中将其初始化为:
userRecord.toJSON()
现在我想访问控制器内的$http.post('/.firebase-user', {uid: firebase.auth().currentUser.uid})
.then(function(response) {
console.log($scope.data, response.userRecord);
});
:
userRecord.toJSON()
但它不是打印true undefined
,而是在控制台中得到{{1}}。
请帮我在我的应用程序内取回信息。感谢
答案 0 :(得分:1)
您的(快速)应用请求处理程序似乎存在一些问题:
/.fb
端点发出请求,但在您的服务器代码中,您是/.firebase-user
端点上的监听器。我想你希望这些都是一样的。then()
完成处理程序实际完成了。您应该在成功案例中明确发送类似res.status(200).send(userRecord.toJSON())
的回复,并在错误案例中明确发送res.status(400).send({ error: error })
。catch()
,以确保您捕获服务器代码发出的任何错误或失败的请求。