Firebase 登录设置失败:“条件绑定的初始化程序必须具有可选类型,而不是‘字符串’”

问题描述 投票:0回答:1

当我运行代码时,我收到此错误:

/Users/ayaangrover/Documents/Github/waffle/Waffle/Waffle/ContentView.swift:46:19 条件绑定的初始化程序必须具有可选类型,而不是“String”。

编辑后的代码在这里(错误出现

accessToken?
):

            guard let user = result?.user,
                  let idToken = user.idToken?.tokenString,
                  let accessToken = user.accessToken?.tokenString else {
                print("Error retrieving tokens")
                return
            }

如果您需要,可以在 https://github.com/ayaangrover/waffle 获取完整代码。

我尝试通过删除

?
之后的
accessToken
来修复它,但收到错误

/Users/ayaangrover/Documents/Github/waffle/Waffle/Waffle/ContentView.swift:46:53 无法对“GIDToken”类型的非可选值使用可选链接

ios swift firebase swiftui firebase-authentication
1个回答
0
投票

删除

?
,您的方向是正确的。
但您还必须考虑到
accessToken
声明是条件绑定的一部分,在您的情况下它有 3 个部分,并且所有 3 个值都必须是可选的。
accessToken
声明移出条件绑定。所以你的代码看起来像这样:

guard let user = result?.user,
      let idToken = user.idToken?.tokenString else {
    print("Error retrieving tokens")
    return
}
let accessToken = user.accessToken.tokenString
© www.soinside.com 2019 - 2024. All rights reserved.