如何将firebase中的键值对存储到数组中?我已经尝试编写代码以从本地数组向firebase发送一些数据,并注意到它们以这样的形式存储:
注意'奖牌'孩子被存储。
我试图从奖牌'中拍摄数组的快照。对象并在swift中将其作为数组返回。
let databaseRef = FIRDatabase.database().reference()
databaseRef.child("users").child(userID!).observeSingleEventOfType(.Value, withBlock: { (snapshot) in
// Get user medals
self.identities3 = snapshot.value!["medals"] as! [String]
})
我知道这很粗糙,但是会有效吗?
谢谢!对firebase和学习来说还是新手:)
答案 0 :(得分:1)
考虑将您的JSON结构更改为: -
public class UserStore : UserStore<User, Role, AppDbContext, string, UserClaim, UserRole, UserLogin, UserToken>
要检索: -
Swift 3
Medals: {
Shield : true,
Tie : true
}
Swift 2
let array = [String]()
FIRDatabase.database().reference().child("users")child(FIRAuth.auth()!.currentUser!.uid).child("medals").observeSingleEvent(of: .value, with: {(snap) in
if let snapDict = snap.value as? [String:AnyObject]{
for each in snapDict{
print(each.key)
self.array.append(each.key)
}
}
})
答案 1 :(得分:1)
试试这个:
let databaseRef = FIRDatabase.database().reference()
databaseRef.child("users").child(userID!).child("medals").observeSingleEventOfType(.Value, withBlock: { (snapshot) in
// Get user medals
self.identities3 = snapshot.value as! [String]
})