作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Firebase 在 Swift 中编写一个应用程序。如何将 Firebase 数据库快照与其他内容进行比较?对于他们不理解我的人,这里有一个例子:
Database.database().reference().child("users").child((Auth.auth().currentUser?.uid)!).child("Person").observeSingleEvent(of: .value) { (PersonSnap) in
let PersonID = PersonSnap.value
if PersonID == "HelloWorld" {
//Code
}
}
如何制作这个 if PersonID == "HelloWorld"
部分?
最佳答案
您的代码工作正常 - 唯一的问题是 PersonSnap.value 可能有很多东西,所以我们需要告诉编译器它是什么。这个问题假定以下 Firebase 结构
your_firebase
users
uid_x
Person: "HelloWorld"
要读取的 Firebase 闭包中的代码是
let PersonID = snapshot.value as! String
if PersonID == "HelloWorld" {
print(PersonID)
} else {
print("the string was not HelloWorld")
}
请注意,我们正在展开可选的 PersonSnap.value 并将其定义为字符串。
另请注意,如果它为 nil,则强制展开选项可能会给您带来麻烦。仅当您确定变量将被填充时才强制解包。一个更安全的选择是 guard
guard let myId = snapshot.value as? String else { return }
print(myId)
如果您想 super 安全又时尚,请使用if let
if let thisId = snapshot.value as? String {
if thisId == "HelloWorld" {
print(thisId)
} else {
print("the string was not HelloWorld")
}
}
关于swift - 如何将 Firebase 数据库快照与文本进行比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50778922/
我是一名优秀的程序员,十分优秀!