I made a function and in terminal hit firebase deploy, instead of firebase deploy -- only functions. Now it has reset the database rules. How do I get them back?
There is no way to revert to the previous rules of your Realtime Database once you've overwritten them.
While this feature was added to the Firestore console a while ago, it wasn't added to the Realtime Database. You might want to file a feature request for it to be added, but for now you'll have to reconstruct the rules yourself.
I'm using Realtime Database in Firebase and by accident I clicked on Cloud Firestore. Since then whenever I want to access Realtime Database it defaults to Cloud Firestore and I have to click and choose the database I'm using, super annoying. Is there a way to disable or delete it?
Is there a way to disable or delete it?
There is no way you can disable either Cloud Firestore or Firebase realtime database from your Firebase console. The simplest solution I can think of, is to save a bookmark in your browser pointing to:
https://console.firebase.google.com/project/firebaseProjectId/database/yourProjectName/data
You can also copy and paste the url that you need and it will point directly to your Firebase realtime database project. In this way you'll skip the initial steps.
I have a flutter application in which I need to update the list in realtime every time a new child is added to the database. I have tried looking for it everywhere but nothing is working. Please provide an example code to implement it.
Check out this post about CRUD operations with firebase. What you are looking for is basically the Read part. Using a stream to listen to the changes made in your firebase reference.
I am using Firebase Database in my app and have a cloud function trigger for on update and create.
I have a scenario in app where data created and than deleted in app
when internet offline and later when connected to internet somehow the create event in cloud function is triggered and i am updating some common fields but while it gets updated / before it gets updated the delete action in queue from app occurs and later that ref child remains only with the updated keys.
I want to terminate create event ongoing async code in Cloud Function if delete is occurred.
Hope i explained my scenario clearly. if any confusion please ask in comments.
Thank You in advance.
I follow some guidelines to have my Vue.js state in sync with Firebase. I have set up references to Firebase and getters, mutations and actions in vue in a separate folder store. It seems to work when I update the states without Firebase connections (local) and it also works when I update Firebase from other components only using the Firebasereference and push - then the sync seems to work. My question is if I should update the state throw "action / mutation" and the mutation will do a push to the state array and in som magic way the Firebase will update which not happens in my case.
So - how to update? From the component using the reference, for example dbOrdersRef.push(order) or with a call to the store with for example this.$store.dispatch('setOrder', order) which don't updates Firebase (but other local variables updates).
I think scheme should be like this:
You should subscribe on firebase updates somehow (I'm not familiar with firebase but I'm sure that there should be some mechanism for that) and when updates come from firebase - you should mutate your store by dispatching some actions, to keep you store in sync with firebase.
Ideally, your app should work with your store only. Store should hide such implementation details as firebase usage. If tomorrow you will switch from firebase to something else, you shouldn't rewrite your components which work with the store. They still will work with the store and with the same actions.
When you update something in your store you need to update firebase as well. I think you can do it right in your actions, it should be fine. In that way, you can be sure that all changes which will appear in your store, will be in firebase. E.g. you call someAction which actually do some firebase manipulation. If you subscribed on firebase changes you won't even do something else in that action, except sending some command for firebase, because your subscription will update your store. Or you can mutate the store immediately (aka optimistic update), then wait for response from firebase, and then decide leave that update or call some mutation to rollback (however here you should be very careful because of subscription on firebase changes).
Or, alternatively, you can write some plugin for your store, which will send updates to firebase only when some change in your store has been done. In that case, updates from your app firstly will appear locally in your store, then your plugin will send them to firebase (maybe such plugin even already exist, idk).
I'm not an expert in firebase, but tried to share some thoughts about how it should work in general. Hope this helps.
Oh, back to your question:
dbOrdersRef.push(order) or with a call to the store with for example this.$store.dispatch('setOrder', order) which don't updates Firebase
I think you shouldn't use firebase in components at all and should use your store instead. So I'd rather advice to use the second option. But you should implement firebase updates by your own, there are no magic updates from store to firebase by default (at least if you aren't using some plugin with that magic).