node.js - 用户在云函数中订阅主题时出现 400 Bad Request 错误

标签 node.js firebase firebase-cloud-messaging

我正在尝试在云功能上订阅用户 Firebase 主题。所以根据官方文档我尝试了以下代码

 request({
        method: 'POST',
        url: "https://iid.googleapis.com/iid/v1:batchAdd",
        json: true,


        headers: {
            'Content-Type':'application/json',
            'Authorization':'key=server key,

        },

        body: JSON.stringify({

          "to": "/topics/name",
          "registration_tokens": ["token value"]

        })
            }, function (error, response, body){
        console.log('error:', error);
        console.log('statusCode:', response && response.statusCode);
        if (response.statusCode >= 400) {
            console.error('HTTP Error: '+response.statusCode+' - '+response.statusMessage);
          }
    });

但是它给出的是 400 状态代码而不是 200。谢谢。

最佳答案

您需要适当的授权才能使用 Google API。你输入了吗? (在代码的标题部分)。也许是一个线索:如果您在浏览器的地址栏中输入代码上指示的 URL,您会发现:

{"error":"MissingAuthorization"}

正如您所指出的,错误 400 是错误的请求,即您的请求操作可能犯了一些错误。 W3C 规定:

由于语法错误,服务器无法理解该请求

也许这个格式错误的语法是由于缺乏此授权,从而引发此错误 400。

关于node.js - 用户在云函数中订阅主题时出现 400 Bad Request 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43553717/

相关文章:

javascript - 浏览器是否仍然默默地吞下未处理的拒绝 promise ? Node 呢?

angular - Firebase 部署错误 : Authorization failed

javascript - React-native 和 Firebase : Wait for Firebase data

node.js - 是否可以在没有python的情况下为node.js安装sharp?

javascript - 多个 Controller 上的 Node.js 事件发射器订阅

node.js - 在 Node.js/Express 中,如何为重定向禁用浏览器缓存?

ios - Swift Firebase 检查认证更顺畅

c# - 如何使用 C# 创建推送通知 (FCM)

Android - firebase 云消息传递,一个 firebase 项目中的两个应用程序

ios - 推送通知本地化以发送设备语言显示,而不是接收设备语言。 swift