Я пробовал несколько различных вариантов, и в настоящее время я использую приведенный ниже код для прослушивания изменений аутентификации и обновления тела представления, за исключением того, что оно не перерисовывается.
В частности, мое состояние var self.user
, по-видимому, не обновляется, если в строке установлено user
: self.user = _user
. Насколько я понимаю, левая сторона знака равенства должна равняться правой, а затем вызывать перерисовку, потому что это состояние!
Чего мне не хватает?
struct MotherView: View {
@State var user = Auth.auth().currentUser
...
func initAuth() {
_ = Auth.auth().addStateDidChangeListener { (auth, _user) in
print("Auth state did change: User:")
if(_user != nil){
print("User is signed in!")
} else {
print("User is NOT signed in")
}
self.user = _user
}
}
// This doesn't update
var body: some View {
VStack {
if (self.user == nil) {
...
} else {
...
}
}
}