MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Cara Menggunakan MongoDB Stitch di Aplikasi Android

Dengan MongoDB Atlas, yang diperlukan hanyalah beberapa klik di browser untuk mengaktifkan dan menjalankan klaster MongoDB Anda sendiri di cloud. Dengan menggunakannya, Anda dapat membangun aplikasi Android dan iOS yang dapat melayani jutaan pengguna secara efisien. Namun, Anda masih memerlukan server back-end yang dapat bertindak sebagai perantara antara perangkat pengguna dan cluster Anda. Anda memerlukannya untuk menegakkan kebijakan keamanan, menambahkan tingkat abstraksi ke operasi CRUD Anda, menjadwalkan tugas, dan untuk banyak tugas penting lainnya.

  • MongoDBBuat Cluster Database di Cloud Dengan MongoDB AtlasAshraff Hathibelagal

MongoDB Stitch adalah platform tanpa server yang kuat yang dapat memenuhi semua persyaratan back-end Anda. Selain menyediakan kontrol akses mendetail ke data di klaster MongoDB Atlas Anda, ia menawarkan lingkungan komputasi berbasis JavaScript yang dapat Anda gunakan untuk melakukan berbagai macam operasi sisi server. Dalam tutorial ini, saya akan menunjukkan cara menggunakan platform di aplikasi Android.

Prasyarat

Untuk mengikuti, Anda memerlukan:

  • akun Atlas MongoDB
  • versi Android Studio terbaru
  • perangkat atau emulator yang menjalankan Android 5.0 atau lebih tinggi

1. Buat Cluster Atlas MongoDB

MongoDB Stitch dimaksudkan untuk digunakan dengan cluster MongoDB Atlas. Anda bebas menggunakan cluster yang sudah Anda miliki, tetapi saya sarankan Anda membuat cluster baru untuk tutorial ini.

Mulailah dengan masuk ke akun MongoDB Atlas Anda dan tekan tombol Build a New Cluster tombol.

Di layar berikutnya, yang menanyakan detail konfigurasi tentang cluster baru Anda, pilih penyedia cloud mana pun, wilayah yang menawarkan cluster tingkat gratis M0, dan tekan tombol Buat Cluster tombol.

Setelah beberapa menit, Anda akan memiliki cluster tingkat gratis baru bernama Cluster0 .

2. Buat Aplikasi Jahitan MongoDB

Untuk mengaitkan aplikasi Stitch dengan cluster Anda, klik Tautan Aplikasi tautan. Di laman yang terbuka berikutnya, tekan tombol Buat Aplikasi Baru tombol.

Anda sekarang dapat mengetikkan nama yang Anda inginkan untuk aplikasi Stitch baru Anda. Setelah Anda melakukannya, pastikan cluster yang tepat dipilih dan tekan tombol Buat tombol.

Pada titik ini, aplikasi Stitch Anda—dengan kuota gratis yang sangat banyak—sudah siap.

Aplikasi ini memiliki ID unik yang Anda perlukan saat mengembangkan aplikasi Android Anda. Anda dapat melihat apa itu dengan membuka Klien dan membuka Java (Android) tab.

3. Konfigurasi Pengguna dan Aturan

Dengan menggunakan MongoDB Stitch, Anda dapat dengan aman menulis kode front-end web dan seluler untuk berinteraksi dengan klaster MongoDB Atlas Anda. Hal ini dimungkinkan karena Anda tidak perlu menyertakan string koneksi yang berisi alamat server database, nama pengguna, dan sandi dalam kode Anda.

Pengguna akhir terautentikasi dari aplikasi Stitch Anda secara otomatis mendapatkan akses ke database Anda. Namun, menggunakan satu atau beberapa aturan, Anda dapat mengontrol dengan tepat dokumen dan bidang mana yang dapat mereka lihat atau ubah.

Untuk mengautentikasi pengguna Anda, Stitch menawarkan beberapa mekanisme autentikasi, termasuk autentikasi anonim, autentikasi email/kata sandi, dan autentikasi menggunakan penyedia identitas federasi yang populer. Dalam tutorial ini, kita akan menggunakan otentikasi anonim. Untuk menyiapkannya, buka Pengguna dan buka Penyedia tab.

Selanjutnya, pilih Izinkan pengguna untuk masuk secara anonim opsi, aktifkan, dan tekan tombol Simpan tombol.

Katakanlah kita ingin mengizinkan pengguna anonim kita untuk bekerja hanya dengan dokumen yang mereka miliki. Untuk membuat aturan seperti itu, buka Aturan bagian.

Karena aturan diterapkan ke koleksi, tekan tombol Tambahkan Koleksi tombol untuk membuat koleksi baru sekarang. Dalam formulir yang muncul, beri nama padanya dan tentukan basis data mana yang harus dimiliki. Setelah Anda melakukannya, pilih Pengguna hanya dapat membaca dan menulis data mereka sendiri template aturan.

Saat memilih template, Anda akan diminta untuk menentukan nama bidang di dokumen tempat Anda akan menyimpan ID autentikasi Stitch yang dibuat secara otomatis oleh pengguna. Stitch akan menggunakan bidang ini saat memutuskan apakah dokumen milik pengguna atau bukan. Katakanlah namanya user_id dan kirimkan formulirnya.

Di halaman yang terbuka berikutnya, kini Anda dapat mengonfirmasi bahwa hanya pemilik dokumen dalam koleksi Anda yang dapat melakukan operasi baca dan tulis pada dokumen tersebut.

4. Siapkan Proyek Android

Agar dapat menggunakan Stitch dalam proyek Android Studio, Anda harus menambahkan SDK resminya sebagai implementation ketergantungan pada app . Anda build.gradle module modul berkas.

implementation 'org.mongodb:stitch-android-sdk:4.0.5'

Selain itu, Anda harus menyebutkan ID unik aplikasi Stitch di proyek Anda. Jadi, buka res/values/strings.xml file dan tambahkan sebagai <string> tag.

<string name="my_app_id">mystitchapp-qwern</string>

5. Buat Koneksi

Dengan instance StitchAppClient kelas, Anda dapat dengan mudah menggunakan semua fitur yang ditawarkan platform Stitch. Untuk menginisialisasi inisialisasi StitchAppClient , Anda harus memanggil initializeDefaultAppClient() metode dan berikan ID aplikasi Stitch Anda ke sana. Ini hanya perlu dilakukan sekali di aplikasi Anda, sebaiknya segera setelah dimulai.

Setelah siap, Anda dapat memanggil getDefaultAppClient() metode untuk mendapatkan referensi ke klien. Kode berikut, yang dapat Anda tambahkan ke onCreate() aktivitas Anda metode, menunjukkan caranya:

Stitch.initializeDefaultAppClient(
    resources.getString(R.string.my_app_id)
)

val stitchAppClient = Stitch.getDefaultAppClient()

Kecuali jika pengguna Anda masuk ke aplikasi Stitch Anda, Anda tidak akan dapat melakukan operasi yang berguna di klaster MongoDB Atlas Anda. Oleh karena itu, Anda sekarang harus memasukkan pengguna dengan memanggil loginWithCredential() metode, yang berjalan secara asinkron dan menampilkan Task obyek. Selain itu, karena Anda memilih autentikasi anonim sebagai mekanisme autentikasi di konsol web Stitch, pastikan Anda meneruskan instance AnonymousCredential kelas ke metode.

stitchAppClient.auth.loginWithCredential(AnonymousCredential())
        .addOnSuccessListener { 
            // More code here
        }

Pada titik ini, jika Anda menjalankan aplikasi, Stitch akan secara otomatis mendaftarkan Anda sebagai pengguna baru, dan juga memasukkan Anda ke dalam aplikasi. Terlebih lagi, jika Anda kembali ke konsol web Stitch dan membuka Pengguna bagian, Anda akan dapat melihat bahwa entri baru telah ditambahkan ke daftar pengguna.

6. Sisipkan Dokumen

Setelah autentikasi berhasil, Anda dapat melanjutkan dan mendapatkan instance RemoteMongoClient kelas untuk mulai berinteraksi dengan cluster MongoDB Atlas Anda. Untuk melakukannya, Anda dapat memanggil getServiceClient() metode dan tentukan bahwa nama layanan yang Anda inginkan adalah "mongodb-atlas ". Begini caranya:

val mongoClient = stitchAppClient.getServiceClient(
                    RemoteMongoClient.factory,
                    "mongodb-atlas"
                  )

Ingatlah bahwa, berkat aturan yang Anda buat sebelumnya dalam tutorial ini, pengguna Anda hanya dapat melakukan operasi baca dan tulis pada datanya sendiri. Selain itu, pengguna Anda dibatasi hanya untuk bekerja dengan database dan koleksi yang Anda sebutkan di konsol web Stitch.

Untuk mendapatkan referensi ke database, panggil getDatabase() metode dan berikan namanya ke sana. Demikian pula, untuk mendapatkan referensi ke koleksi, panggil getCollection() metode, yang mengembalikan RemoteMongoCollection objek.

val myCollection = mongoClient.getDatabase("test")
                              .getCollection("my_collection")

Apa yang Anda tambahkan ke koleksi, tentu saja, terserah Anda. Sebagai contoh, katakanlah kita ingin menambahkan dokumen yang berisi stempel waktu setiap kali pengguna membuka aplikasi.

Untuk membuat dokumen BSON baru, Anda harus menggunakan konstruktor Document kelas. Karena Document objek sangat mirip dengan peta, Anda dapat menggunakan [] operator untuk menambahkan pasangan nilai kunci ke dalamnya.

Kode berikut menunjukkan cara membuat dokumen baru dan menambahkan stempel waktu ke dalamnya:

val myFirstDocument = Document()
myFirstDocument["time"] = Date().time

Selain data Anda, semua dokumen Anda harus berisi ID autentikasi Stitch pengguna. Tanpa itu, operasi penyisipan Anda akan gagal. Untuk mendapatkan auth ID bisa langsung menggunakan id properti dari it . implisit objek yang tersedia di dalam pendengar yang sedang sukses.

myFirstDocument["user_id"] = it.id

Anda sekarang dapat menyisipkan dokumen dengan memanggil insertOne() metode. (Anda dapat membaca tentang insertOne() metode dan operasi tulis lainnya dalam dokumentasi MongoDB untuk driver Java.) Karena berjalan secara asinkron, Anda memerlukan listener lain yang sedang sukses untuk memeriksa apakah operasi penyisipan berhasil.

myCollection.insertOne(myFirstDocument)
            .addOnSuccessListener {
                Log.d("STITCH", "One document inserted")
            }

Jika Anda menjalankan aplikasi sekarang dan memeriksa Logcat Android Android Studio panel, Anda seharusnya dapat melihat entri log yang terlihat seperti ini:

7. Jalankan Kueri

Dengan memanggil find() metode RemoteMongoCollection Anda objek, Anda dapat membuat kueri. (Anda dapat mempelajari lebih lanjut tentang find() dan operasi kueri lainnya dalam dokumentasi driver Java MongoDB.)Metode ini mengembalikan RemoteFindIterable objek, di mana Anda dapat memanggil lebih banyak metode seperti sort() dan limit() untuk mengelola hasil kueri. Misalnya, kode berikut membuat kueri untuk menemukan lima dokumen terakhir yang dibuat oleh pengguna:

val query = myCollection.find()
                        .sort( Document("time", -1) )
                        .limit(5)

Untuk benar-benar menjalankan kueri, Anda dapat memanggil into() metode, yang mengharapkan daftar sebagai argumen. Seperti namanya, itu memuat hasil kueri, yang tidak lain adalah Document objek, ke dalam daftar yang Anda berikan padanya. Ini berjalan secara asinkron, sehingga Anda dapat mulai menggunakan daftar hanya di dalam pendengar yang sukses.

val result = mutableListOf<Document>()

query.into(result).addOnSuccessListener {
    // More code here    
}

Untuk saat ini, untuk mempermudah, mari gunakan TextView widget untuk menampilkan hasil kueri. Jadi tambahkan kode berikut ke file XML layout aktivitas Anda:

<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/viewer"
    />

Kembali ke dalam pendengar yang sukses, Anda sekarang dapat mengulang daftar dan membuat string gabungan yang berisi semua stempel waktu. Secara opsional, Anda dapat meneruskan stempel waktu ke getRelativeDateTimeString() metode DateUtils kelas untuk membuatnya lebih mudah dibaca. Setelah string siap, Anda dapat langsung menetapkannya ke TextView widget. Begini caranya:

val output = StringBuilder("You opened this app: \n\n")

// Loop through the results
result.forEach {
    output.append(
        DateUtils.getRelativeDateTimeString(
            this@MainActivity,            
            it["time"] as Long, // Get value of 'time' field
            DateUtils.SECOND_IN_MILLIS,     
            DateUtils.WEEK_IN_MILLIS,
            0
        )
    ).append("\n")
}

// Update the TextView
viewer.text = output

Jika Anda menjalankan aplikasi lagi, Anda sekarang akan melihat sesuatu seperti ini di perangkat Anda:


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Luwak:CastError:Cast ke ObjectId gagal untuk nilai [objek Obyek] di jalur _id

  2. MongoDB $setIsSubset

  3. Skema Mongoose belum terdaftar untuk model

  4. Buat Situs Web Toko Makanan Online Menggunakan Angular, NodeJS, Express, dan MongoDB

  5. MongoDB $min