firebase-database チュートリアル
firebase-databaseを使い始める
サーチ…
備考
このセクションでは、firebase-databaseの概要、および開発者がそれを使用する理由を概説します。
また、firebaseデータベース内の大きなテーマについても言及し、関連するトピックにリンクする必要があります。 firebase-databaseのドキュメントは新しくなっているので、それらの関連トピックの初期バージョンを作成する必要があります。
バージョン
| プラットフォームSDK | バージョン | 発売日 |
|---|---|---|
| Firebase JavaScript SDK | 3.7.0 | 2017-03-01 |
| Firebase C ++ SDK | 3.0.0 | 2107-02-27 |
| Firebase Unity SDK | 3.0.0 | 2107-02-27 |
| Firebase iOS SDK | 3.14.0 | 2017-02-23 |
| Firebase Android SDK | 10.2 | 2017-02-15 |
| Firebase Admin Node.js SDK | 4.1.1 | 2017-02-14 |
| Firebase Admin Java SDK | 4.1.2 | 2017-02-14 |
AndroidプロジェクトにFirebaseを追加する
ここでは、Firebaseプロジェクトを作成し、それをAndroidアプリに接続するために必要な手順を示します。
あなたのアプリにFirebaseを追加する
FirebaseコンソールでFirebaseプロジェクトを作成し、[ Create New Project ]をクリックします 。
Androidアプリに [ Firebaseを追加]をクリックし、設定手順に従います。
プロンプトが表示されたら、 アプリのパッケージ名を入力します。
アプリで使用しているパッケージ名を入力することが重要です。 Firebaseプロジェクトにアプリを追加するときにのみ設定できます。最後に
google-services.jsonファイルをダウンロードします。いつでもこのファイルをダウンロードできます。 (このファイルはFirebaseコンソールのプロジェクト設定の下にあります)。アンドロイドのスタジオを切り替えて、プロジェクトフォルダに移動し、google-service.jsonファイルをアプリフォルダの下に貼り付けます
次のステップでは、SDKを追加してFirebaseライブラリをプロジェクトに統合します。
SDKを追加する
Firebaseライブラリを自分のプロジェクトに統合するには、Android Studioプロジェクトを準備するための基本的なタスクをいくつか実行する必要があります。 Firebaseをあなたのアプリに追加する際に、すでにこれを行っているかもしれません。
- ルートレベルの
build.gradleファイルにルールを追加して、 google-servicesプラグインを追加します。
buildscript {
// ...
dependencies {
// ...
classpath 'com.google.gms:google-services:3.1.1'
}
}
次に、モジュールのGradleファイル(通常はapp/build.gradle )に、Gradleプラグインを有効にするために、ファイルの最後に適用プラグイン行を追加します。
apply plugin: 'com.android.application'
android {
// ...
}
dependencies {
// ...
compile 'com.google.firebase:firebase-core:9.4.0'//THIS IS FOR ANALYTICS
compile "com.google.firebase:firebase-database:11.0.2"
}
// BELOW STATEMENT MUST BE WRITTEN IN BOTTOM
apply plugin: 'com.google.gms.google-services'
ノート:
データは認証なしでは読み書きできません。あなたは認証なしでそれをしたい場合。データベースfirebaseコンソールのルールを変更します。
{"rules":{".read":true、 ".write":true}}
マニフェストにインターネット許可を追加する
Google PlayサービスとGoogleリポジトリをアップグレードする
単純な値をデータベースに書き込む
まず、 インストールと設定を完了して、あなたのアプリをFirebaseに接続します。あなたのクラスのどこからでも書くことができます:
// Write a message to the database
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference("message");
myRef.setValue("Hello, World!");
Hello, Wold!次のように、 messageノードに追加します。
"your-project-parent" : {
"message" : "Hello, World!"
}
説明
FirebaseDatabase database = FirebaseDatabase.getInstance();
上記のコードは、 FirebaseDatabaseインスタンスをFirebaseDatabase使用するためにdatabaseオブジェクトに割り当てます。
DatabaseReference myRef = database.getReference("message");
上記のコードは、 myRefオブジェクトをプロジェクトの親の"message"子に参照します(この例では、 "your-project-parent" )。つまり、 "your-project-parent/message"
myRef.setValue("Hello, World!");
上記のコードは"Hello, World!"を設定し"Hello, World!" myRefによって参照されるパスへ
カスタムモデルをデータ構造に自動的にマップする
いくつかのデータをデータベースに設定し、このようないくつかのノードからなる構造を取得した後、
"user" : {
"-KdbKcU2ptfYF2xKb5aO" : {
"firstName" : "Arthur",
"lastName" : "Schopenhauer",
"userName" : "AphorismMan",
"phone" : "+9022-02-1778",
"gender": "M",
"age" : 25
},
"-KdbQFjs9BDviuqQVHjY" : {
"firstName" : "Werner",
"lastName" : "Heisenberg",
"userName" : "whereAmI",
"phone" : "+9005-12-1901",
"gender": "M",
"age" : 75
}
}
データ構造を分類できます。
クラスを作成する
データベースに設定するモデルクラスを作成します。
@IgnoreExtraProperties
public class User {
public String firstName;
public String lastName;
public String userName;
public String phone;
public String gender;
public int age;
public User() {
}
public User(String firstName, String lastName, String userName, String phone, String gender, int age) {
this.firstName = firstName;
this.lastName = lastName;
this.userName = userName;
this.phone = phone;
this.gender = gender;
this.age = age;
}
}
データにマップするモデルクラスを作成するときに覚えておくべきことがいくつかあります。
- 空のコンストラクタが必要です
- 変数/フィールドのスコープはpublicでなければなりません。これにより、 firebaseから返されるDataSnapshotがこれらのフィールドにアクセスできるようになります。データを取得しない場合、DataSnapshotはコールバックでモデルにアクセスできず、例外が発生します。
- 変数/フィールドの名前は、データ構造の名前と一致する必要があります。
Firebaseへの送信
ユーザーオブジェクトを作成する
User user = new User ( "Arthur","Schopenhauer","AphorismMan","+9022-02-1778","M",25)
参照
DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference();
これでデータベースの参照ができました。 databaseReference.child("user")してuserノードを作成しuser 。 .push()すると、モデルは上記の"-KdbKcU2ptfYF2xKb5aO", "-KdbQFjs9BDviuqQVHjY"ようにランダムに作成されたユニークIDの下に配置されます。
databaseReference.child("user").push().setValue(user, new DatabaseReference.CompletionListener() {
@Override
public void onComplete(DatabaseError databaseError, DatabaseReference databaseReference) {
Toast.makeText(getActivity(), "User added.", Toast.LENGTH_SHORT).show();
}
});
特定のキーの下でデータを設定する場合は、 .child("yourSpecificKey")代わりに.push() .child("yourSpecificKey")使用して.push()を設定します。
databaseReference.child("user").child("yourSpecificKey").setValue(user,...