To the best of my understanding the re-evaluation and re-rendering of a SwiftUI View can only be triggered by the built-in property wrappers like @State and @ObservedObject.
Though property wrapper composition is not supported in Swift 5.1.3, it -is- on the master branch development snapshot tool chains on Swift.org.
This means that your custom property wrapper type can conform to ObservableObject and then you can indeed compose @ObservedObject with your own wrapper.
I have an example of something quite similar to yours running - also with Firebase as the data source.