متصل کردن برنامه به Firebase

اگر قبلاً این کار را نکرده‌اید، Firebase را به پروژه Android خود اضافه کنید.

ایجاد پایگاه داده

  1. در کنسول Firebase، به پایگاه‌های داده و فضای ذخیره‌سازی > پایگاه داده هم‌زمان بروید.

  2. روی ایجاد پایگاه داده کلیک کنید.

  3. حالت شروع را برای Firebase Security Rules انتخاب کنید:

    حالت آزمایشی

    برای شروع کار با کتابخانه‌های کارخواه وب و تلفن همراه مناسب است، اما به همه اجازه می‌دهد داده‌هایتان را بخوانند و بازنویسی کنند. پس‌از آزمایش، حتماً بخش آشنایی با قوانین پایگاه داده بی‌درنگ Firebase را مرور کنید.

    برای شروع کار با کیت توسعه نرم‌افزار (SDK) وب، Apple، یا Android، حالت آزمایشی را انتخاب کنید.

    حالت قفل‌شده

    همه خواندن‌ها و نوشتن‌ها را از کلاینت‌های وب و تلفن همراه رد می‌کند. سرورهای برنامه اصالت‌سنجی‌شده شما همچنان می‌توانند به پایگاه داده‌تان دسترسی داشته باشند.

  4. مکانی برای پایگاه داده انتخاب کنید.

    بسته به مکان پایگاه داده، نشانی وب پایگاه داده جدید به یکی از شکل‌های زیر خواهد بود:

    • DATABASE_NAME.firebaseio.com (برای پایگاه‌های داده در us-central1)

    • DATABASE_NAME.REGION.firebasedatabase.app (برای پایگاه‌های داده در همه مکان‌های دیگر)

  5. روی تمام کلیک کنید.

وقتی 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 را فعال کنید تا مطمئن شوید فقط برنامه‌های شما می‌توانند به پایگاه‌های داده‌تان دسترسی داشته باشند.

مراحل بعدی