FireBase sendMessage 函数更新到 v1 Google Cloud Endpoint

mys*_*ola 5 firebase google-cloud-endpoints google-cloud-functions

所以......今天早上......我收到一封电子邮件说:

我们的记录显示,您拥有的 App Engine 应用程序或 Cloud Functions 项目仍在调用 App Engine 和 Cloud Functions 元数据服务器的 pre-GA v0.1 和 v1beta1 端点。

我们写信通知您,这些旧端点计划于 2020 年 4 月 30 日被拒绝。2020 年 4 月 30 日之后,将不再支持对 v0.1 和 v1beta1 端点的请求,并且可能返回 HTTP 404未找到响应。

我只使用 Firebase 函数来发送消息......并且电子邮件继续将我的 sendMessage 函数识别为罪魁祸首。但我不能......为了我的生活......弄清楚我需要在哪里更新端点。我的sendMessage函数如下:

exports.sendMessage = functions.database.ref('/messages/{receiverUid}/{senderUid}/{msgId}')
    .onWrite(async (change, context) => {
      const message = change.after.val().body;
      const receiverUid = change.after.val().receiverUid;
      const senderUid = change.after.val().senderUid;
      const msgId = change.after.val().msgId;
      if (!change.after.val()) {
        return console.log('Sender ', senderUid, 'receiver ', receiverUid, 'message ', message);
      }
      console.log('We have a new message: ', message, 'for: ', receiverUid);
Run Code Online (Sandbox Code Playgroud)

我已经尝试遵循此链接中的一些 Curl 建议:https : //cloud.google.com/compute/docs/migrating-to-v1-metadata-server

...但每次我尝试其中一个时,我都会得到:

curl: (6) 无法解析主机“metadata.google.internal”

所以......在这一点上......我不知道我应该改变什么或我应该看哪里。任何帮助,将不胜感激。

Cod*_*iak 5

我遇到了同样的问题,并且没有看到这里列出了我使用的任何库。

就我而言,罪魁祸首是firebase-admin. 我使用的是 7.3.0 版,我发现了这个 gem:

$ grep -rni "computeMetadata/" *
firebase-admin/lib/auth/credential.js:30:var GOOGLE_METADATA_SERVICE_PATH = '/computeMetadata/v1beta1/instance/service-accounts/default/token';
Run Code Online (Sandbox Code Playgroud)

所以,我更新了我的云功能库,可如图所示在这里:

npm install firebase-functions@latest --save
npm install firebase-admin@latest --save-exact
Run Code Online (Sandbox Code Playgroud)

然后,瞧!

$ grep -rni "computeMetadata/" *
node_modules/firebase-admin/lib/auth/credential.js:30:var GOOGLE_METADATA_SERVICE_PATH = '/computeMetadata/v1/instance/service-accounts/default/token';
Run Code Online (Sandbox Code Playgroud)

然后我重新部署并解决了问题。