本頁面由 Cloud Translation API 翻譯而成。
Switch to English

在Android上安裝和設置

將您的應用程序連接到Firebase

如果尚未將Firebase添加到您的Android項目中

創建一個數據庫

  1. 如果尚未創建Firebase項目,請執行以下操作:在Firebase控制台中,單擊Add project ,然後按照屏幕上的說明創建Firebase項目或將Firebase服務添加到現有的Google Cloud項目。

  2. 導航到Firebase控制台的“實時數據庫”部分。系統將提示您選擇一個現有的Firebase項目。遵循數據庫創建工作流程。

  3. 為您的Firebase安全規則選擇一種啟動模式:

    測試模式

    適用於移動和Web客戶端庫入門,但允許任何人讀取和覆蓋您的數據。測試之後,請確保查看“了解Firebase實時數據庫規則”部分。

    要開始使用Web,iOS或Android SDK,請選擇測試模式。

    鎖定模式

    拒絕來自移動和Web客戶端的所有讀取和寫入。經過身份驗證的應用程序服務器仍然可以訪問數據庫。

  4. 選擇數據庫的區域。根據您對區域的選擇,數據庫名稱空間的格式為<dbname>.firebaseio.com<dbname>.<regioncode>.firebasedatabase.app 。有關更多信息,請參見選擇項目的位置

  5. 單擊完成

啟用實時數據庫後,它還會在Cloud API Manager中啟用API

將Realtime Database SDK添加到您的應用中

使用Firebase Android BoM ,在模塊(應用程序級)Gradle文件(通常為app/build.gradle )中聲明Realtime Database Android庫的依賴app/build.gradle

爪哇

dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:26.3.0')

    // Declare 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庫的兼容版本。

(可選)使用BoM聲明Firebase庫依賴關係

如果選擇不使用Firebase BoM,則必須在其依賴關係行中指定每個Firebase庫版本。

請注意,如果您在應用中使用多個Firebase庫,我們強烈建議使用BoM來管理庫版本,以確保所有版本兼容。

dependencies {
    // Declare 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:19.6.0'
}

Kotlin + KTX

dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:26.3.0')

    // Declare 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-ktx'
}

通過使用Firebase Android BoM ,您的應用將始終使用Firebase Android庫的兼容版本。

(可選)使用BoM聲明Firebase庫依賴關係

如果選擇不使用Firebase BoM,則必須在其依賴關係行中指定每個Firebase庫版本。

請注意,如果您在應用中使用多個Firebase庫,我們強烈建議使用BoM來管理庫版本,以確保所有版本兼容。

dependencies {
    // Declare 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-ktx:19.6.0'
}

配置實時數據庫規則

實時數據庫提供了一種聲明性規則語言,使您可以定義數據的結構方式,索引方式以及何時可以讀取和寫入數據。

寫入數據庫

使用getInstance()檢索數據庫的實例,並引用要寫入的位置。

爪哇

// Write a message to the database
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference("message");

myRef.setValue("Hello, World!");

Kotlin + KTX

// Write a message to the database
val database = Firebase.database
val myRef = database.getReference("message")

myRef.setValue("Hello, World!")

您可以通過這種方式將一系列數據類型(包括Java對象)保存到數據庫中。保存對象時,來自任何獲取程序的響應都將另存為該位置的子級。

從數據庫中讀取

為了使您的應用程序數據實時更新,您應該將ValueEventListener添加到剛創建的引用中。

附加了偵聽器後,將觸發此類中的onDataChange()方法,並且每次更改數據(包括子級)時都會再次觸發。

爪哇

// Read from the database
myRef.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(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(DatabaseError error) {
        // Failed to read value
        Log.w(TAG, "Failed to read value.", error.toException());
    }
});

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())
    }
})

可選:配置ProGuard

在與ProGuard一起在應用程序中使用Firebase Realtime Database時,您需要考慮混淆後如何對模型對象進行序列化和反序列化。如果使用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 to fit the structure
    # of your app.
    -keepclassmembers class com.yourcompany.models.** {
      *;
    }

準備發射

在啟動您的應用程序之前,我們建議您仔細閱讀啟動清單,以確保您的應用程序已準備就緒!

下一步