【问题标题】:Firestore document exist returns false result in iOS Swift [duplicate]Firestore文档存在在iOS Swift中返回错误结果[重复]
【发布时间】:2018-01-14 16:28:15
【问题描述】:

我的 Firestore 数据库中不存在单个文档或集合, 但是当调用此代码时,它会打印出“文档存在 == true。用户数据:(user.data())”

libc++abi.dylib:以 NSException 类型的未捕获异常终止 (lldb)

错误。

let reference = database.collection("users").document(currentUser.uid)

reference.getDocument { (snapshot, error) in
    guard let user = snapshot else {
        print("Document exist == false")
        return
    }

    print("Document exist == true. User data:  \(user.data())")
}

我在这里做错了什么?

【问题讨论】:

  • @CMont 谢谢,这帮助我理解了这个问题

标签: ios swift firebase google-cloud-firestore


【解决方案1】:

除了检查是否返回了非空快照之外,您还应该使用exists 方法:

let reference = database.collection("users").document(currentUser.uid)

reference.getDocument { (snapshot, error) in

    guard
        let snapshot = snapshot,
        let user = snapshot.exists ? snapshot : nil
    else {
        print("Document exist == false")
        return
    }
    print("Document exist == true. User data:  \(user.data())")
}

【讨论】:

  • 有人可以解释一下这一行 let user = snapshot.exists 吗?快照:请无。有什么作用?在这种情况下做。搜索了 Swift 文档,但找不到任何东西。
  • 它是大多数语言中的“三元运算符”。见developer.apple.com/library/content/documentation/Swift/…。我可以理解搜索“?”可能会很痛苦......
猜你喜欢
  • 2020-04-07
  • 2019-01-27
  • 2019-01-27
  • 1970-01-01
  • 2020-08-30
  • 1970-01-01
  • 2021-10-09
  • 1970-01-01
  • 2018-05-10
相关资源
最近更新 更多