Aplikasi Obrolan Pribadi - Parse dan Swift

Saya ingin membuat aplikasi obrolan pribadi. Desain saya hanya UITableView untuk saat ini dan saya menggunakan Parse (coding dengan Swift). Untuk saat ini bagian pengiriman dan penerimaan saya berfungsi (dengan setiap animasi seperti bidang teks yang tumbuh dengan keyboard dan semuanya), tetapi saya menanyakan setiap pesan di kelas "pesan" alih-alih hanya pesan yang dikirim dari pengguna1 ke pengguna2. .. apakah ada di antara Anda yang tahu cara membuat kueri hanya pada objek tertentu? apa yang harus saya lakukan ?

Terima kasih atas bantuan Anda

PS: Saya mencari lama sekali sebelum menanyakan pertanyaan itu dan saya tidak dapat menemukan apa pun.


person Arnaud Planche    schedule 22.12.2015    source sumber
comment
Tabel pesan Anda diharapkan memiliki dua bidang pengguna yang menunjukkan pengguna menara yang mengambil bagian dalam percakapan. (atau bahkan serangkaian pengguna jika Anda memiliki grup). Anda kemudian menggunakan where untuk mengurangi jumlah baris yang cocok seperti findMessages.whereKey("otherUser", equalTo: conversationPartner) dll.   -  person luk2302    schedule 23.12.2015
comment
bukankah seharusnya saya mengirimkan setiap pesan ke pengguna itu dengan itu?   -  person Arnaud Planche    schedule 23.12.2015
comment
itu adalah contoh yang sangat dikurangi, termasuk yang kedua yang menerapkan pengguna kedua juga   -  person luk2302    schedule 23.12.2015
comment
Anda dapat menggunakan query.whereKey(sender, equalTo: user1) atau yang serupa dengan itu   -  person Pranav Wadhwa    schedule 23.12.2015


Jawaban (2)


Saya yakin jawaban sebenarnya terletak pada mengubah struktur model Anda. Yang saya sarankan adalah membuat kelas bernama "Percakapan" di parse. Kelas ini akan memiliki:

  1. Anggota yang disebut "pesan" (yang merupakan array dari semua pesan yang dikirim/diterima dalam percakapan)

  2. Seorang anggota yang disebut "peserta" - serangkaian string id peserta yang ada dalam percakapan (id dapat berupa id objeknya)

Maka yang harus Anda lakukan hanyalah menanyakan kelas Percakapan di manaKey("peserta", terkandungIn: id) di mana "id" adalah [String] dari id objek peserta (atau id apa pun yang Anda inginkan).

Desain inilah yang digunakan Layer: https://layer.com/

person mattyb    schedule 22.12.2015
comment
Terima kasih atas saran Anda! haruskah saya meletakkan pesan sebagai penunjuk? jika ya, bagaimana saya melakukannya? dan Jika tidak: lalu bagaimana cara menanyakan pesannya? - person Arnaud Planche; 23.12.2015
comment
Saya membuat percakapan kelas tetapi setiap kali Anda menghubungi seseorang, Anda membuat percakapan baru yang tidak persis seperti yang saya cari... Apakah Anda punya cara untuk membuka kembali percakapan jika sudah ada? ? - person Arnaud Planche; 23.12.2015
comment
Saya tidak yakin apa yang Anda maksud dengan pertanyaan pertama Anda? Adapun pertanyaan kedua Anda, Anda bisa menanyakan percakapan sebelum membuatnya dan memeriksa apakah kueri itu mengembalikan suatu objek, jika demikian maka Anda tahu itu ada dan Anda tidak perlu membuat yang lain membuat yang baru. - person mattyb; 23.12.2015
comment
Jika saya membuat percakapan, saya yakin saya harus memasukkan pesan-pesan ke dalam array untuk mendapatkan semuanya dalam satu kesempatan, tetapi bagaimana saya bisa memasukkan pesan-pesan itu ke dalam array dan mendapatkan semua datanya (tanggal pembuatan dan teks) ? Saya yakin itu seharusnya menjadi petunjuk, bukan? tapi bagaimana saya bisa membuat seperti array pointer - person Arnaud Planche; 23.12.2015
comment
juga, bagaimana saya bisa menanyakan nama pengirim dan penerima? - person Arnaud Planche; 23.12.2015

Menurut saya parse tidak sesuai untuk aplikasi chat karena chat harus real-time dan simultan, jadi saya sarankan Firebase atau Pendorong kedua sistem soket memiliki pembaruan waktu nyata dan dibuat untuk aplikasi obrolan.

Di sisi lain, jika Anda bersikeras untuk melakukan parsing, mungkin Anda dapat menggunakan,

Tautan metode PFObject +objectWithoutDataWithClassName:objectId: di bawah,

https://parse.com/docs/ios/api/Classes/PFObject.html#/c:objc(cs)PFObject(cm)objectWithoutDataWithClassName:objectId:

Temukan juga contoh aplikasi chat firebase di sini.

person mert    schedule 22.12.2015
comment
apakah ada cara untuk membuat aplikasi saya dengan keduanya (Parse dan Firebase)? karena saya tidak ingin memulai dari awal lagi dengan sistem backend yang berbeda - person Arnaud Planche; 23.12.2015