【发布时间】:2023-01-13 00:27:31
【问题描述】:
我有 3 个应用程序,移动应用程序(反应原生),网络应用程序(反应 js)和一个 Nodejs 应用程序。
移动应用程序是电子商务移动应用程序,网络应用程序是管理页面(客户端)。管理页面从使用 firebase admin sdk 的 NodeJs 应用程序(api)获取所有数据。
问题是我希望每次用户使用移动应用程序下订单时,管理页面都会自动从 NodeJs 应用程序获取数据。
接口代码:
router.post("/orders", function(req, res, next) {
const {filterBy} = req.body;
let orders = [];
if(filterBy === "all"){
db.ref("orders").on('value',function(snap){
if(snap.val){
snap.forEach(function(child){
let items = child.val();
orders.push(items);
})
}
})
}else{
db.ref("orders").orderByChild("generalStatus").equalTo(filterBy)
.on('value',function(snap){
if(snap.val){
snap.forEach(function(child){
let items = child.val();
orders.push(items);
})
}
})
}
res.json(orders.reverse());
});
【问题讨论】:
-
Firebase 有自己的实时事件管理,但我不记得它是如何工作的。如果您使用后端而不是直接使用 Firebase,则需要使用 WebSockets(已建议)或 SSE(服务器端事件)等机制等技术进行一些工作。如果你真的不想为这些烦恼,你总是可以做一个从前端到服务器的轮询率(例如每 1 分钟),然后从那里做一个
/get(或/fetch)。但是请不要这样做。
标签: node.js reactjs firebase react-native firebase-realtime-database