i using firebase , trying build 1:1 conversations. rooms, used structure this:
- rooms - "user1_user2" // roomname - timestampedid1 - message: "hello" - sender: "user2" - timestampedid2 - message: "hey" - sender: "user1" - "user2_user3" - timestampedid3 - message: "mew" - sender: "user3"
for room names, used (which got answer):
let roomname = (from<to ? from+"_"+to : to+"_"+from)
however, trying retrieve, , got confused. firebase, proper structure of creating private rooms , retrieving them?
should store 'from' , 'to' individually inside 'roomname' node? if so, how can compare them , list them descending timestamp (new old)? think there should way of doing 1 request. how can 'roomname' approach? or there other better way achieve it?
let roomref = firebase(url: self.url + "/rooms") // query? .observeeventoftype(.value, withblock: { details in })
what proper way of handling kind of case? should change structure or there way query properly?
i structure follows , have 3 nodes: roommembers, chat , lastmessages:
roommembers user1iduser2id user1id: true user2id: true chat user1iduser2id -kiypwddfaa6gxmlwljb message userid etc (-kiypwddfaa6gxmlwljb childbyautoid() timestamp) lastmessages user1id user1iduser2id lastmessage lastuser etc. user2id user1iduser2id lastmessage lastuser etc.