ios - 在 Swift 中访问嵌套的 Firebase 数据
问题描述
我正在尝试基于 profile 访问嵌套数据值uid
。有了这个基于uid
有多个朋友的个人资料,并且朋友有位置和个人资料图像(在个人资料中)对象。我正在使用CodableFirebase
和模型Friend,Profile,LastLocation
。对于我使用的主要数据列表observeSingleEvent(of: .value
和我需要使用的所有其他嵌套数据.observe(.childAdded
。
- 第二件事我将如何根据配置文件 uid 读取所有值并将它们保存到一个数组中,然后我可以在 TableView 中显示?我不知道该怎么做,请任何人帮助我。
Firebase 数据库:
zzV6DQSXUyUkPHgENDbZ9EjXVBj2
friends
FTgzbZ9uWBTkiZK9kqLZaAIhEDv1
conversationUid: "-L_w2yi8gh49GppDP3r5"
friendStatus: "STATUS_ACCEPTED"
notify: true
phoneNumber: "+055441503"
uid: "FTgzbZ9uWBTkiZK9kqLZaAIhEDv1"
HHCBYyP4KybcINgZaWVukR967l12
IcBfQKAnswQ7rivFuZsPvRUcsX43
LEZ2FUxS1WVaqSEHx5YqnpZ5Els1
YyFIm4hTorMFq4olpvHJI7e5e3a2
nkS2cjSvmLUEYEKsAVyErz9HkrJ2
lastLocation
batteryStatus: 27
latitude: 41.0220811
longitude: 29.0445012
timeStamp: 1571742057730
uid: "zzV6DQSXUyUkPHgENDbZ9EjXVBj2"
profile
fcmToken: "enMneewiGgg:APA91bHyA4HypWUYhxGTUTTcWch8ZJ_6UUW..."
name: “My Profile name”
phoneNumber: "+05588674"
picture: "profile/zzV6DQSXUyUkPHgENDbZ9EjXVBj2/a995c7f3-7..."
uid: "zzV6DQSXUyUkPHgENDbZ9EjXVBj2"
代码:
let ref = Database.database().reference()
ref.child("users").child("zzV6DQSXUyUkPHgENDbZ9EjXVBj2").observeSingleEvent(of: .value, with: { (snapshot) in
for userSnapshot in snapshot.children.allObjects as! [DataSnapshot] {
let friendsSnapshot = userSnapshot.childrenCount
do {
let frndList = try FirebaseDecoder().decode(Friend.self, from: friendsSnapshot)
self.AppData = [frndList]
print(frndList)
self.tableView.reloadData()
} catch let error {
print(error)
}
解决方案
推荐阅读
- javascript - 如何转换响应式导航栏并将图标更改为 X?
- c# - 如何在 C# 的抽象类中对内部方法或私有方法进行单元测试?
- c# - Blazor 中特定文件夹内 CSS 的差异及其用途
- algorithm - 您如何计算具有函数的函数的时间复杂度?
- javascript - “等待仅在异步函数中有效”,而它是异步函数
- node.js - Nodejs Sequelize crud功能不起作用
- javascript - 如何使用 MutationObserver 监听视频加载事件?
- mysql - 设计一个在不同条件下具有不同字段的表的最佳实践是什么?
- javascript - 所以我为我的 discord.js 机器人做了一个 meme 命令
- random - 如何在 NetLogo 中执行蒙特卡洛采样?