swift - 如何将 Firebase 数据库快照与文本进行比较?
问题描述
我正在使用 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 let myId = snapshot.value as? String else { return }
print(myId)
如果你想要超级安全和时尚,使用if let
if let thisId = snapshot.value as? String {
if thisId == "HelloWorld" {
print(thisId)
} else {
print("the string was not HelloWorld")
}
}
推荐阅读
- java - 为什么即使与数据库的连接正常,查询也不起作用?
- matlab - 有没有办法从规则分布的曲率值绘制二维曲线?
- html - 如何删除水平滚动?
- reactjs - React setState 没有得到更新
- c# - 使用 Google Drive API V3 复制 Google Drive 文件时出错
- python - 通过Flask /不使用plt.show()转换为json时如何添加Plotly图形配置
- sql - postgresql中的多个引用
- c# - 如何正确地将 DI HttpClient 转换为 FlurlClient?
- python - 如何访问flask-sqlalchemy中的primary_key?
- php - Oauth 2.0 身份验证授权类型:密码