angularjs表达通过$ http发回数据

时间:2017-01-24 23:51:21

标签: angularjs node.js express firebase firebase-admin

我是firebase管理员SDK中的新手并试图让我的angularjs应用程序工作,使用并执行herethis 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}}。 请帮我在我的应用程序内取回信息。感谢

1 个答案:

答案 0 :(得分:1)

您的(快速)应用请求处理程序似乎存在一些问题:

  1. 在您的Angular代码中,您向/.fb端点发出请求,但在您的服务器代码中,您是/.firebase-user端点上的监听器。我想你希望这些都是一样的。
  2. 您的服务器代码实际上从未向Angular代码发送响应。我很惊讶你的then()完成处理程序实际完成了。您应该在成功案例中明确发送类似res.status(200).send(userRecord.toJSON())的回复,并在错误案例中明确发送res.status(400).send({ error: error })
  3. 您应该在Angular代码中添加catch(),以确保您捕获服务器代码发出的任何错误或失败的请求。