اگر قبلاً این کار را نکردهاید، Firebase را به پروژه Android خود اضافه کنید .
یک پایگاه داده ایجاد کنید
به بخش Realtime Database کنسول Firebase بروید. از شما خواسته می شود که یک پروژه Firebase موجود را انتخاب کنید. گردش کار ایجاد پایگاه داده را دنبال کنید.
یک حالت شروع برای Firebase Security Rules خود انتخاب کنید:
- حالت تست
برای شروع کار با کتابخانه های موبایل و کلاینت وب خوب است، اما به هر کسی اجازه می دهد داده های شما را بخواند و بازنویسی کند. پس از تست، حتما قسمت Understand Firebase Realtime Database Rules را مرور کنید.
برای شروع کار با وب، اپل یا اندروید SDK، حالت تست را انتخاب کنید.
- حالت قفل شده
همه خواندن و نوشتن از مشتریان تلفن همراه و وب را رد می کند. سرورهای برنامه تأیید شده شما همچنان می توانند به پایگاه داده شما دسترسی داشته باشند.
مکانی را برای پایگاه داده انتخاب کنید.
بسته به موقعیت پایگاه داده ، URL پایگاه داده جدید به یکی از اشکال زیر خواهد بود:
DATABASE_NAME .firebaseio.com
(برای پایگاههای داده درus-central1
)DATABASE_NAME . REGION .firebasedatabase.app
(برای پایگاههای داده در همه مکانهای دیگر)
روی Done کلیک کنید.
هنگامی که 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:33.3.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 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:21.0.0") }
Realtime Database Security Rules پیکربندی کنید
Realtime Database یک زبان قواعد اعلامی را ارائه می دهد که به شما امکان می دهد نحوه ساختار داده های شما، نحوه فهرست بندی و زمان خواندن و نوشتن داده های شما را تعریف کنید.
در پایگاه داده خود بنویسید
نمونه ای از پایگاه داده خود را با استفاده از getInstance()
بازیابی کنید و به مکانی که می خواهید در آن بنویسید ارجاع دهید.
Kotlin+KTX
// 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!");
از این طریق می توانید طیف وسیعی از انواع داده ها را در پایگاه داده ذخیره کنید، از جمله اشیاء جاوا. هنگامی که یک شی را ذخیره می کنید، پاسخ های دریافت کننده ها به عنوان فرزندان این مکان ذخیره می شوند.
از پایگاه داده خود بخوانید
برای بهروزرسانی دادههای برنامه خود در زمان واقعی، باید یک ValueEventListener
به مرجعی که ایجاد کردهاید اضافه کنید.
متد onDataChange()
در این کلاس یک بار هنگامی که شنونده متصل می شود و دوباره هر بار که داده ها از جمله فرزندان تغییر می کنند، راه اندازی می شود.
Kotlin+KTX
// 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 مشاهده کنید .