我需要实现一个监听器,一旦外部消息触发,该监听器就会写入我的 firebase。为两页代码运行外部服务器对我来说似乎不合理,而且我已经了解了 Firebase 的静态托管。
小型自定义脚本能否像在 Backendless 等其他 BaaS 上一样在 Firebase 上运行?
最佳答案
自 2017 年 3 月起,可以使用 Cloud Functions for Firebase 在 Google 服务器上运行一小段 JavaScript 代码来响应 Firebase 中的事件。通过写入数据库来触发函数可以非常简单:
// Listens for new messages added to /trigger
exports.onTrigger = functions.database.ref('/trigger')
.onWrite(event => {
// Grab the current value of what was written to the Realtime Database.
const original = event.data.val();
// TODO: write value to data and return a promise
});
我强烈建议阅读文档并查看带有 common use-cases for Cloud Functions for Firebase 的页面.
旧答案
您无法在 Firebase 的服务器上执行您自己的代码。但您可以让触发器流过 Firebase,然后将更新写入 Firebase。
var trigger = new Firebase('http://yourfirebase.firebaseio.com/trigger');
var data = new Firebase('http://yourfirebase.firebaseio.com/data');
handlersRef.on('value', function(snapshot) {
// write value to data
});
当然,这需要一个事件/连接的客户端,而不是您试图避免的服务器。
如果您不希望这样,您将需要一台服务器。现在有很多免费且价格合理的选项可供选择。
关于firebase - 我可以在 Firebase 上托管监听器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22881973/