【问题标题】:Why is my Firestore/Firebase add document function working in production, but not local machine?为什么我的 Firestore/Firebase 添加文档功能在生产中工作,而不是本地机器?
【发布时间】:2019-09-06 04:43:25
【问题描述】:

我正在关注一个教程,我正在创建谷歌云函数以将虚拟数据添加到谷歌 Firestore。当我使用 Firebase Serve 在本地进行测试时,在向 localhost 端点发送 POST 请求后出现错误“无法加载默认凭据”。但是,当我使用 Firebase Deploy 进行生产测试时,在向生产端点发送 POST 请求并且成功创建数据库条目后,我没有收到任何错误。

const functions = require('firebase-functions');
const admin = require('firebase-admin'); 

admin.initializeApp(functions.config().firebase);
let db = admin.firestore();

exports.createScream = functions.https.onRequest((req, res) => {
    let scream = {
        body: req.body.body, 
        userHandle: req.body.userHandle, 
        createdAt: admin.firestore.Timestamp.fromDate(new Date())
    }; 

    let addScream = db.collection('screams').add(scream)
        .then(ref => {
        res.json({message: `Successfully created scream at ${ref.id}`})})
        .catch(err => {res.status(500).json({error: `${err}`})});
});

【问题讨论】:

标签: javascript node.js firebase google-cloud-firestore google-cloud-functions


【解决方案1】:

要访问您的 firebase 项目,您需要拥有项目的凭据。它可以在云端运行,因为此配置已经为您设置好了。

如果您转到 firebase console 项目,您应该转到设置 => 服务帐户,您可以在其中下载带有您的凭据的 json 文件。

现在创建一个环境变量,指向您刚刚下载的文件。

export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/service-account-file.json"

这个在官方documentation

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-04
    • 1970-01-01
    • 2020-04-28
    • 2016-07-28
    • 1970-01-01
    • 1970-01-01
    • 2018-06-23
    • 2015-01-24
    相关资源
    最近更新 更多