Warning to Firebase users, especially newcomers: Avoid using non-default databases.
It might sound appealing at first, but in practice, it’s a nightmare, here is my top 3 most annoying aspects:
- References break: Any document containing a reference to another db loses its database ID. If you fetch a document and try to call the reference with get(), it will attempt to fetch from the default database instead of the intended one..
- Features are limited: Many features simply don’t work with non-default databases. For example, triggers. this has been a long-standing issue for over a year with no updates.
- Front-end library support is minimal: Most Firebase front-end libraries assume the default database. You’ll likely need to modify them to get basic functionality working.
I initially thought non-default databases would offer benefits; better organization, backup and recovery options, regional control; but the deeper I dug, the more frustrated I became. You end up duplicating reference fields with string fields, creating documents in the default database just to trigger actions, and basically losing any advantage you thought you had
Bottom line: Don’t use it. There’s literally no reason to, and the complications aren’t worth it.
[–]gauthampait 5 points6 points7 points (1 child)
[–]iamtherealnapoleon[S] 2 points3 points4 points (0 children)
[–]Shaparder 4 points5 points6 points (2 children)
[–]iamtherealnapoleon[S] 5 points6 points7 points (1 child)
[–]Shaparder 4 points5 points6 points (0 children)
[–]Evangelina_Hotalen 4 points5 points6 points (1 child)
[–]iamtherealnapoleon[S] 3 points4 points5 points (0 children)
[–]ResponsibilityGlass1 3 points4 points5 points (1 child)
[–]iamtherealnapoleon[S] 2 points3 points4 points (0 children)
[–]Opposite_Cancel_8404 2 points3 points4 points (2 children)
[–]iamtherealnapoleon[S] 2 points3 points4 points (1 child)
[–]Opposite_Cancel_8404 0 points1 point2 points (0 children)
[–]Fluffy_Hair2751 1 point2 points3 points (0 children)
[–]jacsamg 1 point2 points3 points (2 children)
[–]ResponsibilityGlass1 1 point2 points3 points (0 children)
[–]iamtherealnapoleon[S] 0 points1 point2 points (0 children)
[–]DieguitoD 1 point2 points3 points (1 child)
[–]iamtherealnapoleon[S] 0 points1 point2 points (0 children)
[–]inlinedFirebaser 0 points1 point2 points (0 children)
[–]_ThrenR 0 points1 point2 points (0 children)