【发布时间】:2017-04-13 05:42:38
【问题描述】:
我有 Firebase 存储桶,我想使用 Node.js Google-cloud 通知 API 来监听存储的变化。
到目前为止我所拥有的:
const gcloud = require('google-cloud');
const storage = gcloud.storage({
projectId: 'projectId',
credentials: serviceAccount
});
const storageBucket = storage.bucket('bucketId');
现在据我了解,我必须创建一个频道才能收听存储更改。
所以我有:
const storageBucketNotificationChannel = storage.channel('channelId', 'resourceId');
这是文档不再清晰的阈值,因为我无法弄清楚 channelId 一个 resourceId 代表什么。
我也不明白如何声明监听频道变化本身。是否有任何生命周期类型的方法可以这样做?
我可以这样做吗?
storageBucketNotificationChannel.onMessage(message => { ... })
【问题讨论】:
-
大部分用户使用gsutil notification命令设置通知通道。您需要以编程方式进行吗?
-
是的,我愿意。原因是我需要一个图像处理服务器。我很想利用 Firebase 的强大功能并使服务器由 Firebase“代理”(隐藏在 Firebase 后面)。因此,我希望服务器监听存储更改并在 child_add 上分别处理图像。 child_changed。通过在 Firebase 实时数据库上桥接问题,我确实为我的用例找到了解决方案,因为 Firebase 管理员 Node.js SDK 使设置我提到的查询变得非常简单。但由于它不是对问题的直接回答,所以我将线程保持打开状态。
-
你真的很想试试 Google Cloud Functions (cloud.google.com/functions),它大大简化了这一切。有关如何处理 Firebase 存储上传和处理图像的示例,请参阅 github.com/mcdonamp/flaming-specs。
-
我还强烈建议您研究 Google Cloud Functions,因为它可能会满足您寻求的目的,并且基本上在 Node/NPM 上运行。 gcloud Node SDK 中的频道文档确实很精简。我会看看我能做些什么来测试这个可能会运行一个示例。我会向我们的文档团队提出。
-
我已将an issue 提交给文档,要求将示例添加到参考中。如果它对您很重要,请随时支持此提交。与此同时,我必须获得一个有效的 SSL 证书才能自己测试这个,因为接收端点的this is a requirement。
标签: javascript node.js firebase google-cloud-storage firebase-storage