我正在使用Firebase实时数据库作为API的数据库。
once()
和on()
有什么不同?
我的once()
代码运行速度非常慢。
off()
是用来做什么的?
示例
router.get('/:qrid', async(req, res)=>{
let id = req.params.qrid;
let ref = firebase.database().ref('/qr/'+id);
let snapshot = await ref.once('value');
res.json(Object.assign({}, snapshot.val()));
});
这项工作非常缓慢(250毫秒-3000毫秒)。当我使用on()时,一切都变得更快了。
router.get('/:qrid',(req, res)=>{
let id = req.params.qrid;
let ref = firebase.database().ref('/qr/'+id);
ref.on('value',(snapshot) => res.json(Object.assign({}, snapshot.val())));
});
off()
,请求不会更快。通常在离开页面时使用off()
来取消订阅监听器并避免内存泄漏。 - Peter Haddad