INFRA

Android - Firebase Realtime Database

Firebaseのリアルタイムデータベースを使ってみます。リアルタイムに反映するし、オフラインでもいい感じにしてくれるそうです。

Firebase Realtime Database

接続が再確立されると、クライアント端末は不足している変更内容を受信して、現在のサーバーの状態と同期します。

データはJSONで保存されます。

Firebaseコンソールでアプリ登録

https://console.firebase.google.com/ プロジェクト作成したらAndroid用アプリ登録しまして、google-services.jsonをappディレクトリ直下に配置しまして、gradleの設定に関して下記を実行します。

  1. プロジェクト レベル build.gradle(/build.gradle):
buildscript {
dependencies {
// Add this line
classpath 'com.google.gms:google-services:3.0.0'
}
}
  1. アプリレベル build.gradle(//build.gradle):
// Add to the bottom of the file
apply plugin: 'com.google.gms.google-services'
  1. realtime databaseを使用するためにアプリレベルのgradleに下記を設定します。
compile 'com.google.firebase:firebase-database:10.0.1'

データの読み書きルールの設定

コンソールで行います。ここに説明があります。デフォルトでは下記のようになっており、これはデータの読み書きは認証が必要になります。

{
"rules": {
".read": "auth != null",
".write": "auth != null"
}
}

テストなので、全部認証なしでOKにします。

{
"rules": {
".read": true,
".write": true
}
}

データを書き込んでみます

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference("message");
myRef.setValue("Hello, World!");
}

これだけで書き込めました。messageというkeyにHello W…というvalueを登録しました。