gpt4 book ai didi

ios - Swift:如果删除了 child 的观察者,则不会调用 Firebase 身份验证观察者

转载 作者:行者123 更新时间:2023-11-28 06:49:13 24 4
gpt4 key购买 nike

假设 ref = Firebase(url: "your firebase url")
ref 的子项将是 childRef = ref.childByAppendingPath("child")

如果我有 ref.observeAuthEventWithBlock 监听 ref 的身份验证更改,然后我使用 childRef.removeAllObservers(),ref 的 auth 观察者不再监听变化。

这是为什么?

最佳答案

我制作了一个小应用程序来重现这个问题(后面是 ObjC 代码)

要监视授权的代码是:

[myRootRef observeAuthEventWithBlock:^(FAuthData *authData) {
NSLog(@"got an auth event");
}];

我们有子节点

child = [myRootRef childByAppendingPath:@"child_path"];

那么初始身份验证是

[myRootRef authUser:@"dude@thing.com" password:@"pw" withCompletionBlock:^(NSError *error, FAuthData *authData) {

NSLog(@"authentication 1 success");
[child removeAllObservers];
[self doAuth];
}
}];

doAuth 方法简单地验证另一个用户并输出“身份验证 2 成功”

got an auth event
got an auth event
authentication 1 success
authentication 2 success

正如您所看到的那样,它像宣传的那样工作 - 我无法重现这个问题。我的猜测是错误可能存在于您的代码中的其他地方。

关于ios - Swift:如果删除了 child 的观察者,则不会调用 Firebase 身份验证观察者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35377915/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com