因此,我当前正在尝试从我的firebase数据库中获取数据并将其设置为自己的变量,但是每个图表的孩子是一个特定的日期和时间(yy.mm.dd。H.M.S)。因此,我有一个数组存储所需的所有日期,但是在调用快照时我无法引用它们。我尝试了这两种抛出错误"(child :)必须是一个非空字符串的方法,并且不包含'。'#''$''['或']''"
var postCollection = [170802120618, 170802101427] //yy.mm.dd.hh.mm.ss
ref.child("users").child(uid!).child("Posts").child(self.postCollection[indexPath.row]).observe(.value, with: { (snapshot) in
for item in snapshot.children{
let snapshotValue = snapshot.value as? NSDictionary
let firstNameSnap = snapshotValue?["First Name"] as? String ?? ""
currentCell.nameLabel.text = firstNameSnap
}
})
和
var postCollection = [170802120618, 170802101427] //yy.mm.dd.hh.mm.ss
let selection = self.postCollection[indexPath.row]
ref.child("users").child(uid!).child("Posts").child(self.postCollection[indexPath).observe(.value, with: { (snapshot) in
for item in snapshot.children{
let snapshotValue = snapshot.value as? NSDictionary
let firstNameSnap = snapshotValue?["First Name"] as? String ?? ""
currentCell.nameLabel.text = firstNameSnap
}
})
,数据库图表大致是:
FIR{
users{
uid{
username: UserName
Posts{
170802120618{
First Name: first
}
}
}
}
}
正确。您希望子钥匙成为自动化的hashvalue。您可以使用childByAutoId()
创建这些。另外,如果我是您,我只会将其存储为字符串,并根据需要解析。下面的一些例子是:
Posts {
-Kebfdajksthm {
first_name: "first",
post_date: "yymmddhhmmss"
}
}
尝试此
var post = [String]()
ref.observe(.value, with: { (snapshot) in
for item in snapshot.children{
self.post.append((item as AnyObject).key)
}
})
然后您打印" post" ,您将获得 [170802120618"," 170802101427"]