swift - Swift Firebase 数据库获取数据
问题描述
我有 Firebase 云结构:
如何捕获firstBook
并secondBook
写入数组的名称
并用引号创建另一个数组(Quote1+ Qoute2+ Quote3)来自firstbook
我试试这个:
var array: [String] = []
override func viewDidLoad() {
super.viewDidLoad()
Database.database().reference().ref?.child("category").child("book").observe(.value, with: { (snapshot) in
let valueCat = snapshot.value as! NSDictionary
let username = valueCat["name"] as? String ?? ""
print(username)
self.array.append(username)
}
}
到另一个数组:
var quotAarray: [String] = []
override func viewDidLoad() {
super.viewDidLoad()
Database.database().reference().ref?.child("category").child("book").child("firstBook").observe(.value, with: { (snapshot) in
let valueCat = snapshot.value as! NSDictionary
let quote = valueCat["Quotes"] as? String ?? ""
print(quote)
self.quotAarray.append(quote)
}
}
解决方案
检查这是否对您有帮助 我根据您收到的回复制作了一个示例字典
使用的代码:
/// Sample Data on Base of your Output SHown
var DBData = [["firstBook":["Quotes": ["Quote1":111, "Quote2":222, "Quote3":333 ], "name":"first_Book"]], ["SecondBook":["Quotes":["Quote1":111,"Quote2":222,"Quote3":333],"name":"Second_Book"]]]
/// Names Array - In which book names need to be added
var nameArray = [String]()
/// For loop on base of DBData as it Array of Array Data
for i in 0..<DBData.count {
/// Assumed You have only one Main key in each array
/// Can be known before .
/// if you do not know Let's get keys here in Array at index i
let keysArray : [String] = Array(DBData[i].keys)
/// Now get the current dict value on base of key retrieved as in
/// first case its - firstBook
/// Second case its - SecondBook
let currentDictValue = DBData[i][keysArray[0]]
/// Now get Names of books
/// name is the key used in your DB its generic and its fixed
/// Now get value and add in Array
nameArray.append(currentDictValue!["name"] as! String)
}
/// Output
print("Name Array:\(nameArray)")
最终输出:
注意使用 Quotes 或 Quote ,数据库中的键应该相似
推荐阅读
- c# - 使用元素位置使用循环打印存储在该位置的值
- sql - org.h2.jdbc.JdbcSQLException:未知数据类型:“DATEADD”;SQL 语句
- c# - Internet Explorer 11 Xunit 上的点击问题
- python - youtube 缩略图没有出现在 Jupyter 笔记本中
- c++ - 在 C++ 中访问指针类型 char 数组
- airconsole - 我可以在空调上开发一个主屏幕上的按比例缩小版本的控制器吗?
- visual-studio-code - 使用扩展 API 将 EOL 更改为“LF”
- javascript - 如何在 Angular 应用程序中捕获“net::ERR_CERT_AUTHORITY_INVALID”以处理 SSL 证书问题?
- python - Python - 将数据从列表添加到表时出错
- powershell - 我可以隐藏 Import-Module 的定义吗?