【发布时间】:2021-12-15 09:09:20
【问题描述】:
我在 Swift 中有这个模型
import SwiftUI
import FirebaseFirestoreSwift
import FirebaseFirestore
struct Tweet: Codable, Identifiable, Hashable {
var id: UUID = UUID()
var content: String
var ownerId: String
var owner: UserProfile
var likes: Int
@ServerTimestamp var createdAt: Timestamp?
}
它存储在 Firestore 集合“推文”中:
tweets: {
[
"ds4a65d4a65sd46das65d4": {
"content" : "safsafds",
"createdAt" : "...",
"id" : "sdfsdfsd",
"likes" : 0,
"ownerId" : "123",
"owner" : {
"bio": "aaasdasdassa",
"username": "asdasd",
"profileImage": "aaa",
"userId": "123",
},
}, ...
]
}
当我获取所有推文时,我会正常获取信息以及所有者数据。但所有者数据可能是旧的。假设用户更改了他的个人资料图片或用户名...等,因此推文所有者数据可能不是最新的。
所以,假设我们要从推文模型中移除 owner 字段,并保留 ownerId。
如何使用以下模型获取所有带有所有者数据的推文?
struct Tweet: Codable, Identifiable, Hashable {
var id: UUID = UUID()
var content: String
var ownerId: String
// var owner: UserProfile <-- THIS IS REMOVED
var likes: Int
@ServerTimestamp var createdAt: Timestamp?
}
【问题讨论】:
-
这听起来不像是您可以在 fetch 调用中动态执行的操作。听起来您实际上需要在服务器上重构数据。
标签: swift firebase google-cloud-firestore swift5.5