对象定义为:
struct Course: Identifiable, Hashable, Codable {
@DocumentID var id: String?
var country: String
var createdBy: String
}
然后将该对象作为类的成员嵌入,如下所示:
class CourseRepository: ObservableObject {
private let path: String = "Courses"
private let store = Firestore.firestore()
@Published var courses: [Course] = []
...
在下面的代码片段中,我只希望映射结果包含'createdBy' ==到当前登录用户的uid的球场。但是在.filter语句中,我得到了以下错误:
强调文本
**Value of type 'Published<[Course]>.Publisher.Output' (aka 'Array<Course>') has no member 'createdBy'**
MyCourseRepository.$courses
.filter { $0.createdBy == self.authState.loggedInUser!.uid }
.map { courses in courses.map(CourseViewModel.init)}
.assign(to: .MyCourseViewModels, on: self)
.store(in: &cancellables)
}
任何帮助在这个非常感谢!
现在,您正在尝试filter
Publisher
,而您想要做的是过滤它发送的数组中的项目:
MyCourseRepository.$courses
.map { courseArray in
courseArray.filter { course in
course.createdBy == self.authState.loggedInUser!.uid
}
}