【发布时间】:2018-12-15 12:46:07
【问题描述】:
我正在尝试查询一组帖子。每个帖子都有一个被观看的部分,如果被观看的部分包含用户,那么查询应该返回该值。但是,当我运行查询时:
let postsReference = Firestore.firestore().collection("posts")
let watchingQuery = postsReference.order(by: "watchedBy/\(UID!)").start(at: [""])
watchingQuery.addSnapshotListener { querySnapshot, error in
guard let snapshot = querySnapshot else {
print("Error fetching snapshots: \(error!)")
return
}
snapshot.documentChanges.forEach { diff in
if (diff.type == .added) {
}
if (diff.type == .modified) {
}
if (diff.type == .removed) {
}
}
我收到错误 Invalid field path (watchedBy/BmVoasdfa34fdtiucWSb8XPPM42). Paths must not contain '~', '*', '/', '[', or ']''。等效的 firebase 查询运行良好:
let watchedByQuery = postReference.queryOrdered(byChild: "/watchedBy/" + UID!).queryStarting(atValue: "")
我已尝试将代码更改为let watchingQuery = postsReference.order(by: "watchedBy.\(UID!)").start(at: [""])。此查询有效,但 FireStore 没有返回任何内容。
编辑:
试过了:
let postsReference = Firestore.firestore().collection("posts")
let watchingQuery = postsReference.whereField("watchedBy."+(UID!), isGreaterThan: "")
但仍然返回空。
【问题讨论】:
标签: swift firebase google-cloud-firestore