假设ref = Firebase(url: "your firebase url")
参考的孩子将是childRef = ref.childByAppendingPath("child")
如果我ref.observeAuthEventWithBlock
在ref上侦听身份验证更改,然后我使用childRef.removeAllObservers()
,则ref上的auth观察者不再侦听更改。
为什么会这样?
答案 0 :(得分:1)
我精心设计了一个小应用来复制问题(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方法只是auth的另一个用户并输出'authentication 2 success'
got an auth event
got an auth event
authentication 1 success
authentication 2 success
因为你可以看到它像宣传的那样有效 - 我无法复制这个问题。我的猜测是错误可能在你的代码中的其他地方。