gpt4 book ai didi

swift - (Swift) 如何正确解包可选值?身份验证后 Firebase uid 返回 nil

转载 作者:行者123 更新时间:2023-11-28 15:30:58 26 4
gpt4 key购买 nike

我是 Swift 的新手,在使用 Firebase UID 时遇到了问题。

  usersReference.child("users").observeSingleEvent(of: FIRDataEventType.value, with: { (snapshot) in
print(snapshot)
if snapshot.hasChild((FIRAuth.auth()?.currentUser!.uid)!)
{
print("This user already exist")
//code

}

fatal error :在展开可选值时意外发现 nil

请指教,如何正确解包?还是别的什么?

最佳答案

你在没有先检查它们是否为 nil 的情况下展开两个可能为 nil 的值

  1. FIRAuth.auth()?.currentUser!

currentUser属性返回“当前登录的用户(或 null)。”

  1. (FIRAuth.auth()?.currentUser!.uid)!

要检查第一次或第二次解包是否导致 fatal error :在解包可选值时意外发现 nil,请像这样重构您的 if 语句:

if FIRAuth.auth()?.currentUser == nil {
print("no user logged in")
} else if FIRAuth.auth()?.currentUser!.uid == null {
print("no user id value")
} else if snapshot.hasChild((FIRAuth.auth()?.currentUser!.uid)!) {
print("This user already exist")
} else {
// code to handle new user
}

关于swift - (Swift) 如何正确解包可选值?身份验证后 Firebase uid 返回 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44738703/

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