我有一个使用 firebase 的 swiftui 应用程序。
创建文档时,数据库中存储了 2 个可选参数:一个数组upPostPlusDay
和一个计数器upPostPlusDayValueCount
,以及创建文档的日期publishedDate
( timestamp
)。
请帮我写一个函数,如果文档创建日期和今天的日期有差异,例如7天,数组值将被删除,计数器值将被重置。
一个数组只能包含一个值。
这是将参数写入数据库的模型代码:
import SwiftUI
import FirebaseFirestoreSwift
struct Post: Identifiable, Codable, Equatable, Hashable {
@DocumentID var id: String?
var text: String
var postHead: String
var postAddress: String
var imageURL: URL?
var imageReferenceID: String = ""
var publishedDate: Date = Date()
var likedIDs: [String] = []
var dislikedIDs: [String] = []
var plusFavorites: [String] = []
var upPostPlusDay: [Int] = []
var upPostPlusDayValueCount: Double = 0
var userName: String
var userUID: String
var userProfileURL: URL
var userBioLink: String
enum CodingKeys: CodingKey {
case id
case text
case postHead
case postAddress
case imageURL
case imageReferenceID
case publishedDate
case likedIDs
case dislikedIDs
case plusFavorites
case upPostPlusDay
case upPostPlusDayValueCount
case userName
case userUID
case userProfileURL
case userBioLink
}
}
要实现这样的功能,您需要向模型添加一个函数
Post
,该函数将检查今天的日期与 之间的差异publishedDate
,如果大于或等于 7 天,则删除数组元素upPostPlusDay
并将值设置为零upPostPlusDayValueCount
。您也可以将此函数添加为对象方法Post
,以便于调用。这是此类功能的示例代码:
您可以在从 Firebase 数据库加载每个文档后调用此函数来检查
Post
.例如: