Firebase 在云函数中的HTTPS触发器中使用Cloud Firestore时发生500内部服务器错误

Firebase 在云函数中的HTTPS触发器中使用Cloud Firestore时发生500内部服务器错误,firebase,google-cloud-functions,google-cloud-firestore,Firebase,Google Cloud Functions,Google Cloud Firestore,我正在尝试将一段数据发布到我的云Firestore中的某个位置。云函数本身通过HTTPS进行切换。对于request.body我使用bodyParser.json方法 notifull.post('/postNote', (request, response) => { // grab variables and files from body and query strings var subject = request.body.subject; var ca

我正在尝试将一段数据发布到我的云Firestore中的某个位置。云函数本身通过HTTPS进行切换。对于
request.body
我使用
bodyParser.json
方法

notifull.post('/postNote', (request, response) => {

    // grab variables and files from body and query strings
    var subject = request.body.subject;
    var category = request.body.category;
    var subcategory = request.body.subcategory;

    var title = request.body.title;
    var id = request.body.id;
    var userID = request.body.userID;

    // add data to collection
    var referenceString = `${subject}/${category}/${subcategory}/${id}`;

    var reference = admin.firestore().doc(referenceString);

    reference.set({
        "title": title,
        "id": id,
        "userID": userID,
        "timestamp": Date.now(),
        "upvotes": 0
    });


    // update user posts???

});
我希望在参考资料中有一个小文件

相反,返回的是500内部服务器错误


日志中的错误是“TypeError:admin.firestore不是函数”。我使用的是firebase admin版本4.2.1。

您使用的是旧版本的firebase admin。Firestore支持直到最近才添加。安装最新版本:

npm install firebase-admin@latest
此外,每个HTTPS函数都应该为每个可能的代码路径向客户机返回一个响应,并且只有在函数中的所有工作完成之后

reference.set({
    "title": title,
    "id": id,
    "userID": userID,
    "timestamp": Date.now(),
    "upvotes": 0
})
.then(() => {
    response.send("OK")
})
.catch(error => {
    response.status(500).send(error)
})

您确定您的变量
引用
有效吗?