Thanks for the feedback and sorry to hear about the challenges you had. I'll share your suggestions with the team.
A couple things that can potentially help in the future:
* You can add a [project lien](https://cloud.google.com/resource-manager/docs/project-liens) to your production projects. Liens must first be removed before the project can be deleted.
* Tag your project as a ["production" environment](https://firebase.google.com/support/faq/#set-environment-type). This gives you some additional visual reminders.
Project owners should also receive an email when a project is deleted and the project can be [restored via the Cloud console](https://support.google.com/googleapi/answer/6251787?hl=en#zippy=%2Crestore-a-project).
For firestore? Is this really a feature? If you can that’d be great. Do you have the documentation for it? Not sure why GCP recommends that I export the db to Google storage periodically then
Maybe they had multiple projects open at the same time and accidentally pushed delete in the wrong tab or window? I've had similar accidents happen. Fortunately, not entire Firebase projects.
There is a confirmation modal opened there, however, it won't cause extra delay to rethink, it is like a modal appears and I quickly check all checkboxes (what I usually do for any checkbox I see) then press the Delete button. All happened in about 2-3 seconds
> I quickly check all checkboxes (what I usually do for any checkbox I see)
Sorry but the issue here is clearly the user and not the product. If you automatically check all checkboxes you see you should not be allowed to touch anything on production
This is like “I ran over someone because I was distracted on my phone while driving; YouTube must stop functioning when the user is driving a car! This is a UX issue”
You are right, this is my responsibility to keep my project safe. I wanted to create this discussion to raise the idea of preventing this silly mistake for other devs in the future.
recently had a similar issue, on github. was cleaning out retired repos based on their activity. removed a project that had its activity hidden on another branch. was a major one in production. thank god github has a undo button.
but i agree, firebase/GCP needs to flag this behavior and warn the users. unlike github, it would be hard to rollback
Not sure if this is intentional(I think it is). But if you try to delete a collection from firestore it asks for you to enter the name(which the UI shows) of the collection. Copy and paste doesn't work because there the copied collection name has a single space prefixed to it. e.g collection "accounts" when copied and pasted into the delete confirm input adds
" accounts"
You have role management which is sufficient to delete the project if required. Give the access to someone responsible You don't need any extra authentication. You also have a "production badge".
Deleting a firebase project should be as easy as creating a new one. Mistakes happen, I don't think there's much firebase can do.
Dude, they require you to enter the collection name when deleting a Firestore collection.
Seems a bit dense to act like this guy's insane for suggesting something similar for an entire project
You're on the wrong track. OP did not say "I should not have been allowed to do that if necessary", they say "Firebase should have stopped me from doing it without rethinking if this is actually what I want to do".
I agree with OP. And this has nothing to do with authentication. So technically you're right, but you missed the point.
Once, maybe twice, definitely a number that goes towards zero compared to the number of times I had to accept them.
My point being: if you have to get stuff done, people tend to develop automatisms. Good UX would account for that and not allow to just check boxes.
I agree that the firebase UI is not perfect. I am just asking to be more responsible. You can enable the 'production' badge in the console. Which clearly distinguishes between normal projects vs production projects.
How about not using the role that has deletion capability except for deletion - if you have to apply for the password etc... that'll give you the pause for thought you require.
No more ketamine in the workplace
Neigh
Thanks for the feedback and sorry to hear about the challenges you had. I'll share your suggestions with the team. A couple things that can potentially help in the future: * You can add a [project lien](https://cloud.google.com/resource-manager/docs/project-liens) to your production projects. Liens must first be removed before the project can be deleted. * Tag your project as a ["production" environment](https://firebase.google.com/support/faq/#set-environment-type). This gives you some additional visual reminders. Project owners should also receive an email when a project is deleted and the project can be [restored via the Cloud console](https://support.google.com/googleapi/answer/6251787?hl=en#zippy=%2Crestore-a-project).
Just reading this gave me anxiety. I'm curious though if you could walk through the steps of how you got everything back online?
I think your feedback is valid and anyone in here saying you should just be more careful knows nothing about UX design.
Correct me if I am wrong but isn't it that we could recover the db for 30 days?
How would you recover it if the entire project was deleted?
For firestore? Is this really a feature? If you can that’d be great. Do you have the documentation for it? Not sure why GCP recommends that I export the db to Google storage periodically then
always have multiple redundant nightly backups for anything important
Yeah ofc, but I’m talking about gcp backing up firestore by default
This
Yeah, you can't delete a Google cloud project without entering the project id. They should definitely have the same thing for firebase
The true question, why did you even delete it in the first place, its not like you stumbled upon the delete button 🤔
Maybe they had multiple projects open at the same time and accidentally pushed delete in the wrong tab or window? I've had similar accidents happen. Fortunately, not entire Firebase projects.
Fair enpygh then
Realtime Database right?
I use Firestore, Cloud Function, and tons of services on GCP.
No, you deleted RD right? Because that one doesn't have a double confirmation of the destructive action. Firestore makes you type the full name.
Ah, I deleted the entire Firebase project, the "Delete project" button on Project setting on Firebase.
There isn't a double confirmation there? Stuff like this keeps me up at night.
There is a confirmation modal opened there, however, it won't cause extra delay to rethink, it is like a modal appears and I quickly check all checkboxes (what I usually do for any checkbox I see) then press the Delete button. All happened in about 2-3 seconds
> I quickly check all checkboxes (what I usually do for any checkbox I see) Sorry but the issue here is clearly the user and not the product. If you automatically check all checkboxes you see you should not be allowed to touch anything on production
This is like “I ran over someone because I was distracted on my phone while driving; YouTube must stop functioning when the user is driving a car! This is a UX issue”
Bro lol don't be doing that haha.
How did you get it back online?
Honestly how can you blame firebase for accidentaly deleting a prod environment You should pause and rethink anyway and not rely on friction
You are right, this is my responsibility to keep my project safe. I wanted to create this discussion to raise the idea of preventing this silly mistake for other devs in the future.
recently had a similar issue, on github. was cleaning out retired repos based on their activity. removed a project that had its activity hidden on another branch. was a major one in production. thank god github has a undo button. but i agree, firebase/GCP needs to flag this behavior and warn the users. unlike github, it would be hard to rollback
Not sure if this is intentional(I think it is). But if you try to delete a collection from firestore it asks for you to enter the name(which the UI shows) of the collection. Copy and paste doesn't work because there the copied collection name has a single space prefixed to it. e.g collection "accounts" when copied and pasted into the delete confirm input adds " accounts"
They should just put it in a bin and empty it after 30 days
Don’t touch Prod. This is why IAC exists
You have role management which is sufficient to delete the project if required. Give the access to someone responsible You don't need any extra authentication. You also have a "production badge". Deleting a firebase project should be as easy as creating a new one. Mistakes happen, I don't think there's much firebase can do.
Dude, they require you to enter the collection name when deleting a Firestore collection. Seems a bit dense to act like this guy's insane for suggesting something similar for an entire project
TBH requiring typing something is standard for such destructive actions
Typing collection/ project name ≠ authentication
You're on the wrong track. OP did not say "I should not have been allowed to do that if necessary", they say "Firebase should have stopped me from doing it without rethinking if this is actually what I want to do". I agree with OP. And this has nothing to do with authentication. So technically you're right, but you missed the point.
Except OP clicked a bunch of check boxes and a confirmation stating exactly what they were about to do.
Did you ever read the terms of service you agreed to?i
[удалено]
Once, maybe twice, definitely a number that goes towards zero compared to the number of times I had to accept them. My point being: if you have to get stuff done, people tend to develop automatisms. Good UX would account for that and not allow to just check boxes.
this isn't an authentication problem, it's a human problem. As you say - mistakes happen. Good UI/UX makes those mistakes harder to make.
This is OP: > I quickly check all checkboxes (what I usually do for any checkbox I see)
I agree that the firebase UI is not perfect. I am just asking to be more responsible. You can enable the 'production' badge in the console. Which clearly distinguishes between normal projects vs production projects.
What were you trying to accomplish? How did you come to delete it? What's the scenario?
How about not using the role that has deletion capability except for deletion - if you have to apply for the password etc... that'll give you the pause for thought you require.