无法使用Cloud Function for Firebase通过电子邮件获取用户

时间:2017-07-21 17:15:52

标签: javascript firebase google-cloud-functions firebase-admin

我在Firebase的Cloud Function中使用Node.js Admin SDK,我想调用admin.auth().getUserByEmail()方法。

由于我使用的是Cloud功能,因此我只需阅读here,我只需要致电admin.initializeApp(functions.config().firebase);,我已经完成了这项工作。

但是,当我调用getUserByEmail()(仅在本地测试)时,我收到以下错误: 'No Firebase project was found for the provided credential.'

这是我的index.js

'use strict';

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);

exports.hello = functions.https.onRequest(function (req, resp) {
  var from = req.body.sender;
  admin.auth().getUserByEmail(from)
    .then(function (userRecord) {
      // See the UserRecord reference doc for the contents of userRecord.
      console.log("Successfully fetched user data:", userRecord.toJSON());
    })
    .catch(function (error) {
      console.log("Error fetching user data:", error);
    })
});

有没有人有这方面的经验,可以告诉我我做错了什么?

1 个答案:

答案 0 :(得分:2)

如果您使用的是localy(在Google云端功能模拟器中),则admin sdk无法获得正确的配置json。您必须使用从firebase控制台获得的服务帐户json。

但是如果你已经部署了它,你的方法就可以了。