اگر هنوز Firebase را به پروژه اندروید خود اضافه نکردهاید، آن را اضافه کنید.
ایجاد یک پایگاه داده
به بخش Realtime Database در کنسول Firebase بروید. از شما خواسته میشود که یک پروژه Firebase موجود را انتخاب کنید. مراحل ایجاد پایگاه داده را دنبال کنید.
یک حالت شروع برای Firebase Security Rules خود انتخاب کنید:
- حالت تست
برای شروع کار با کتابخانههای کلاینت موبایل و وب خوب است، اما به هر کسی اجازه میدهد دادههای شما را بخواند و بازنویسی کند. پس از آزمایش، حتماً بخش «درک قوانین پایگاه داده بلادرنگ Firebase» را مرور کنید.
برای شروع کار با وب، اپل یا اندروید SDK، حالت آزمایشی (testmode) را انتخاب کنید.
- حالت قفل شده
تمام خواندنها و نوشتنها را از کلاینتهای موبایل و وب رد میکند. سرورهای برنامهی کاربردی تأیید شدهی شما همچنان میتوانند به پایگاه دادهی شما دسترسی داشته باشند.
مکانی را برای پایگاه داده انتخاب کنید.
بسته به موقعیت مکانی پایگاه داده ، URL پایگاه داده جدید به یکی از شکلهای زیر خواهد بود:
DATABASE_NAME .firebaseio.com(برای پایگاههای داده درus-central1)DATABASE_NAME . REGION .firebasedatabase.app(برای پایگاههای داده در تمام مکانهای دیگر)
روی انجام شد کلیک کنید.
وقتی Realtime Database فعال میکنید، API را نیز در Cloud API Manager فعال میکند.
کیت توسعه نرمافزار (SDK) Realtime Database را به برنامه خود اضافه کنید.
در فایل Gradle ماژول (سطح برنامه) خود (معمولاً<project>/<app-module>/build.gradle.kts یا <project>/<app-module>/build.gradle )، وابستگی مربوط به کتابخانه Realtime Database برای اندروید را اضافه کنید. توصیه میکنیم برای کنترل نسخهبندی کتابخانه Firebase Android BoM استفاده کنید.dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:34.4.0")) // 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 استفاده خواهد کرد.
(جایگزین) اضافه کردن وابستگیهای کتابخانه 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:22.0.1") }
پیکربندی 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!");
شما میتوانید طیف وسیعی از انواع دادهها، از جمله اشیاء جاوا را به این روش در پایگاه داده ذخیره کنید. وقتی یک شیء را ذخیره میکنید، پاسخهای هر getter به عنوان فرزندان این مکان ذخیره میشوند.
از پایگاه داده خود بخوانید
برای اینکه دادههای برنامهتان به صورت بلادرنگ بهروزرسانی شوند، باید یک 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 مشاهده کنید .