اگر قبلاً این کار را نکردهاید، Firebase را به پروژه Android خود اضافه کنید.
ایجاد پایگاه داده
در کنسول Firebase، به پایگاههای داده و فضای ذخیرهسازی > پایگاه داده همزمان بروید.
روی ایجاد پایگاه داده کلیک کنید.
حالت شروع را برای Firebase Security Rules انتخاب کنید:
- حالت آزمایشی
برای شروع کار با کتابخانههای کارخواه وب و تلفن همراه مناسب است، اما به همه اجازه میدهد دادههایتان را بخوانند و بازنویسی کنند. پساز آزمایش، حتماً بخش آشنایی با قوانین پایگاه داده بیدرنگ Firebase را مرور کنید.
برای شروع کار با کیت توسعه نرمافزار (SDK) وب، Apple، یا Android، حالت آزمایشی را انتخاب کنید.
- حالت قفلشده
همه خواندنها و نوشتنها را از کلاینتهای وب و تلفن همراه رد میکند. سرورهای برنامه اصالتسنجیشده شما همچنان میتوانند به پایگاه دادهتان دسترسی داشته باشند.
مکانی برای پایگاه داده انتخاب کنید.
بسته به مکان پایگاه داده، نشانی وب پایگاه داده جدید به یکی از شکلهای زیر خواهد بود:
(برای پایگاههای داده درDATABASE_NAME.firebaseio.comus-central1) (برای پایگاههای داده در همه مکانهای دیگر)DATABASE_NAME.REGION.firebasedatabase.app
روی تمام کلیک کنید.
وقتی Realtime Database را فعال میکنید، میانای برنامهسازی کاربردی نیز در مدیر میانای برنامهسازی کاربردی Cloud فعال میشود.
کیت توسعه نرمافزار Realtime Database را به برنامهتان اضافه کنید
در فایل Gradle (سطح برنامه) (معمولاً<project>/<app-module>/build.gradle.kts یا
<project>/<app-module>/build.gradle)،
وابستگی کتابخانه Realtime Database را برای Android اضافه کنید. توصیه میکنیم از
Firebase Android BoM
برای کنترل نسخهبندی کتابخانه استفاده کنید.
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:35.0.1")) // Add the dependency for the Realtime Database library // When using the BoM, you don't specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-database") }
بااستفاده از Firebase Android BoM، برنامه شما همیشه از نسخههای سازگار کتابخانههای Firebase Android استفاده خواهد کرد.
(جایگزین) افزودن وابستگیهای کتابخانه Firebase بدون استفاده از BoM
اگر انتخاب کنید که از Firebase BoM استفاده نکنید، باید هر نسخه کتابخانه Firebase را در خط وابستگی آن مشخص کنید.
توجه داشته باشید که اگر از چند کتابخانه Firebase در برنامهتان استفاده میکنید، اکیداً توصیه میکنیم از BoM برای مدیریت نسخههای کتابخانه استفاده کنید تا مطمئن شوید همه نسخهها سازگار هستند.
dependencies { // Add the dependency for the Realtime Database library // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-database:23.0.0") }
پیکربندی کردن Realtime Database Security Rules
Realtime Database زبان قوانین اعلانی ارائه میدهد که به شما امکان میدهد تعریف کنید دادههایتان چگونه باید ساختاردهی شوند، چگونه باید نمایهگذاری شوند، و چه زمانی میتوان دادههایتان را خواند و در آنها نوشت.
نوشتن در پایگاه داده شما
نمونهای از پایگاه دادهتان را بااستفاده از getInstance() بازیابی کنید و
به مکانی که میخواهید در آن بنویسید ارجاع دهید.
Kotlin
// Write a message to the database val database = Firebase.database val myRef = database.getReference("message") myRef.setValue("Hello, World!")
Java
// Write a message to the database FirebaseDatabase database = FirebaseDatabase.getInstance(); DatabaseReference myRef = database.getReference("message"); myRef.setValue("Hello, World!");
از این طریق میتوانید طیفی از انواع دادهها، ازجمله اشیاء Java، را در پایگاه داده ذخیره کنید. وقتی شیئی را ذخیره میکنید، پاسخهای هر گیرندهای بهعنوان فرزندان این مکان ذخیره میشود.
خواندن از پایگاه داده شما
برای اینکه دادههای برنامهتان بهروزرسانی همزمان داشته باشد، باید
ValueEventListener
به مرجعی که بهتازگی ایجاد کردهاید اضافه کنید.
روش onDataChange() در این کلاس یکبار هنگام پیوست شدن شنونده و بار دیگر هربار که دادهها تغییر میکند، ازجمله فرزندان، راهاندازی میشود.
Kotlin
// Read from the database myRef.addValueEventListener(object : ValueEventListener { override fun onDataChange(dataSnapshot: DataSnapshot) { // This method is called once with the initial value and again // whenever data at this location is updated. val value = dataSnapshot.getValue<String>() Log.d(TAG, "Value is: $value") } override fun onCancelled(error: DatabaseError) { // Failed to read value Log.w(TAG, "Failed to read value.", error.toException()) } })
Java
// Read from the database myRef.addValueEventListener(new ValueEventListener() { @Override public void onDataChange(@NonNull DataSnapshot dataSnapshot) { // This method is called once with the initial value and again // whenever data at this location is updated. String value = dataSnapshot.getValue(String.class); Log.d(TAG, "Value is: " + value); } @Override public void onCancelled(@NonNull DatabaseError error) { // Failed to read value Log.w(TAG, "Failed to read value.", error.toException()); } });
اختیاری: پیکربندی ProGuard
هنگام استفاده از Firebase Realtime Database در برنامهتان بههمراه ProGuard، باید
درنظر بگیرید که اشیای مدل شما چگونه پساز مبهمسازی
سریالسازی و سریالزدایی خواهند شد. اگر از DataSnapshot.getValue(Class) یا
DatabaseReference.setValue(Object) برای خواندن و نوشتن دادهها استفاده میکنید، باید
قوانینی را به فایل proguard-rules.pro اضافه کنید:
# Add this global rule
-keepattributes Signature
# This rule will properly ProGuard all the model classes in
# the package com.yourcompany.models.
# Modify this rule to fit the structure of your app.
-keepclassmembers class com.yourcompany.models.** {
*;
}
برای دریافت راهنمایی درباره سؤالات یا مشکلات مربوط به ProGuard، به تالارهای گفتمان انجمن Guardsquare مراجعه کنید تا از یک کارشناس کمک بگیرید.
آماده شدن برای راهاندازی
قبلاز راهاندازی برنامهتان، توصیه میکنیم بازبینه راهاندازی ما را مرور کنید تا مطمئن شوید برنامهتان آماده انتشار است!
حتماً App Check را فعال کنید تا مطمئن شوید فقط برنامههای شما میتوانند به پایگاههای دادهتان دسترسی داشته باشند.
مراحل بعدی
- با نحوه ساختاربندی دادهها برای Realtime Database آشنا شوید
- دادههایتان را در چندین نمونه پایگاه داده مقیاسبندی کنید.
- خواندن و نوشتن دادهها.
- پایگاه دادهتان را در کنسول Firebase مشاهده کنید.