我正在尝试使用Swift在Parse中构建一个聊天应用。在viewDidLoad我想查询Dashboard以获取新消息。我使用下面的代码,但没有得到任何结果,解析不会给我任何错误。由于Parse不知道连接,我如何根据子查询获取聊天数据?
我的计划是做这样的事情:
Select * from Chat inner join ChatMember where chat.objectId = ChatMember.chatId and user = <current user>
代码
let squery = PFQuery(className: "ChatMember")
squery.whereKey(“user”, equalTo:(PFUser.current())!)
let query = PFQuery(className: "Chat")
query.whereKey("chatId", matchesQuery: squery)
// tried it with this one too, but same result
query.whereKey("objectId", matchesKey:"chatId", in: squery)
数据结构
Class Chat {objectId: String, owner: Pointer _User, name: String, lastActivity: Date}
Class ChatMember {objectId: String, chatId: Pointer Chat, user: Pointer _User, memberSince: Date, lastActivity: Date, Mute: Boolean}
Class Message {objectId: String, chatId: Pointer Chat, author: Pointer _User, createAt: Date, message: String }
测试我已经做过:
数据库中的字段是正确的。因为如果我向ChatMember添加一个新列并将聊天ID存储为字符串,那么它可以很好地工作。只是没有指针:
let squery = PFQuery(className: "ChatMember")
squery.whereKey(“user”, equalTo:(PFUser.current())!)
let query = PFQuery(className: "Chat")
query.whereKey("objectId", matchesKey:"CHATID_AS_STRING", in: squery)