Im using firebase realtime database on node js like database for API.
What's the different between once() and on()?
My code with once() work very slowly.
What is it needed for off()?
Example
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()));
});
This work very slowly (250ms-3000ms). When I use on() it all faster.
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())));
});
From the docs:
once:
once(eventType: EventType, successCallback?: function, failureCallbackOrContext?: function | Object | null, context?: Object | null): Promise<DataSnapshot>Listens for exactly one event of the specified event type, and then stops listening.
This is equivalent to calling
on(), and then callingoff()inside the callback function. See on() for details on the event types.
on:
on(eventType: EventType, callback: function, cancelCallbackOrContext?: Object | null, context?: Object | null): functionListens for data changes at a particular location.
This is the primary way to read data from a Database. Your callback will be triggered for the initial data and again whenever the data changes. Use
off( )to stop receiving updates.
off() is used to detach a callback previously attached with on()
You can check the reference:
https://firebase.google.com/docs/reference/js/firebase.database.Reference.html
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With