node.js - 处理队列中的任务后更新客户端

标签 node.js firebase firebase-realtime-database firebase-queue

Firebase 客户端可以将任务添加到队列中,如下所示:

var tasks = db.ref('quote-request-queue/tasks');
tasks.push({'need': 'quote for customer'});

此任务代表获取商品报价的请求。

在后端,Firebase 队列工作线程将接收任务并执行一些工作,但是当后端工作完成时更新客户端的规范方法是什么?

我们是否应该在登录用户模型上使用一个属性,让客户端监听更改?

登录用户可以监听自己模型的变化,然后在变化时获取报价数据?

除了登录用户模型本身之外,是否可以在数据库中使用另一个模型?

最佳答案

我会在任务中放置一个唯一标识符,然后您可以将其写入响应“队列”(此时它实际上更像是一个列表)。

所以:

var tasks = db.ref('quote-request-queue/tasks');
var key = tasks.push().key;
tasks.push({'need': 'quote for customer', id: key });

然后服务器将其响应写入:

quote-responses
    <key>

客户端在那里等待响应:

var responses = db.ref('quote-responses').child(key);
responses.on('value', function(snapshot) {
    if (snapshot.exists()) {
        // TODO: handle the response in the snapshot
    }
});

另请参阅:Return task results using firebase-queue

关于node.js - 处理队列中的任务后更新客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39842392/

相关文章:

java - 在android中更新firebase数据库

swift - 如何使用 swift 4 在 ios firebase 中存储用户数据

javascript - NodeJS Selenium Chrome Webdriver 连接被拒绝

node.js - Mongoose 中 ref 集合的默认值

javascript - 计算扑克牌局赔率

javascript - 使用 AngularJs 和 Firebase 无限滚动

swift - (Swift) 如何正确解包可选值?身份验证后 Firebase uid 返回 nil

ios - 如何使用 Swift 在 Firebase 数据库中设置多个值?

arrays - 如何遍历一个对象并插入一个数组

javascript - createWriteStream 的标记选项