arrow-right hamburger logo-mark social-facebook social-github social-twitter

Firebase

using Firebase Library

今回は、Nefry BTライブラリに導入されているFirebaseライブラリの紹介を行います。 一通り機能を紹介しますので、ぜひFirebaseを使った作品を作る際に参考にしてください。

Firebaseとは?

Firebaseは、Googleが運営するBaaSです。

BaaSとはサーバ側のバックエンドを提供してくれるサービスで、データベースや認証部分などのサービスをサーバ側のコードを書かずに実装できる優れものです。

AndroidやiOS、WebやUnityなど様々な言語向けにSDKが出ており、簡単に機能を自分のアプリに組み込むことができます。

公式サイト

2018/8月現在、トップページに表示されている機能だけでも、機械学習や認証機能など17種類の多種多様なサービスが提供されています。

Nefry BTのFirebaseライブラリでできる機能は、「Realtime Database」の読み書きです。

まずはNefry BTから読み書きするために、Firebaseの準備をしていきます。

Firebaseの準備をしよう

公式サイトを開くと「コンソールへ移動」というリンクがあるのでそこをクリックします。

ログインしていない場合、どのGoogleアカウントでログインするか確認されますので、ログインをして次に進みます。

コンソール画面を開くと「プロジェクトを追加」というボタンがあるのでそれをクリックします。

プロジェクトの追加画面が表示されたら、「プロジェクト名」を記入します。 その後下のチェックボックスにチェックを入れると、「プロジェクトを作成」をクリックできるのでクリックして作成します。

プロジェクトが作成できると次のような画面が表示されます。 その中からDatebaseの「使ってみる」というリンクをクリックします。

「Realtime Datebase」を移動したページから探して、「データベースを作成」をクリックします。

Realtime Datebaseのセキュリティルールを確認されますが、「テストモードで開始」を選び、「有効にする」をクリックします。 実際に使う際には適したセキュリティルールで運用してください。

準備が完了すると、次のような画面が表示されます。

ページ中央に表示される https://を抜いたURLをNefry BTに設定するのでメモしておいてください。

例えば下記のようになります。

  • Firebaseに表示されたURL: https://nefryfirebase-14bb0.firebaseio.com/
  • Nefry BTに設定するURL: nefryfirebase-14bb0.firebaseio.com

Firebaseに書き込み

Firebaseに書き込む方法は「新規追加」「書き込み」「データ更新」の3つあります。違いについてはそれぞれの機能説明で紹介します。

新規追加

Firebaseに保存するタイミングで一意のキーを割り振られ、その配下にデータを保存します。

詳しくはドキュメントと、保存されたデータのスクリーンショットをご覧ください。

データのリストの保存 | Firebaseドキュメント

#include<NefryFireBase.h>

//Firebaseに新規キーを追加しそこに情報を書き込みます
NefryFireBase firebase;

void setup() {
  firebase.begin("APPID.firebaseio.com");//FireBaseに接続するための設定をします。
}

int i = 0;

void loop() {
  DataElement elem = DataElement();
  elem.setValue("sensor", i++);
  elem.setValue("NefryTest", 500 + i++);
  firebase.send("Nefry", &elem);//FireBaseに新規キーを追加し、そこにデータを追加します
  delay(10000);
}

書き込み

Firebaseにデータを保存します。更新と似ていますが、こちらはデータを上書きします。

PUTによるデータの書き込み | Firebaseドキュメント

#include<NefryFireBase.h>
//Firebaseにデータを書き込みます
NefryFireBase firebase;
void setup() {
  firebase.begin("APPID.firebaseio.com");//FireBaseに接続するための設定をします。
}
int i = 0;
void loop() {
  DataElement elem = DataElement();
  elem.setValue("sensor", i++);
  elem.setValue("NefryTest", 500 + i++);
  firebase.write("Nefry", &elem);//FireBaseに新規キーを追加し、そこにデータを追加します
  delay(10000);
}

データ更新

Firebaseにデータを保存します。書き込みと似ていますが、こちらは元々あるデータを引継ぎつつupdate関数に入れた値のみ更新します。

PATCHによるデータの更新 | Firebaseドキュメント

#include<NefryFireBase.h>
//FireBaseのデータを更新します
NefryFireBase firebase;
void setup() {
  firebase.begin("APPID.firebaseio.com");//FireBaseに接続するための設定をします。
}
int i = 0;
void loop() {
  DataElement elem = DataElement();
  elem.setValue("sensor", i++);
  elem.setValue("NefryTest", 500 + i++);
  firebase.update("Nefry", &elem);//FireBaseのデータを更新します
  delay(10000);
}

Firebaseのデータを削除

Firebaseにあるデータを削除します。

データの削除 | Firebaseドキュメント

#include<NefryFireBase.h>
//FireBaseのデータを削除します
NefryFireBase firebase;
void setup() {
  firebase.begin("APPID.firebaseio.com");//FireBaseに接続するための設定をします。
}
void loop() {
  //firebase.remove("Nefry");//FireBaseのデータを削除します
  firebase.remove("Nefry/sensor");//一部削除例:FireBaseのデータを削除します
  delay(10000);
}

Firebaseのデータを読み込み

Firebaseにあるデータを読み込みします。

データの取得 | Firebaseドキュメント

#include<NefryFireBase.h>
//FireBaseからデータを読み込みします
NefryFireBase firebase;
void setup() {
  firebase.begin("APPID.firebaseio.com");//FireBaseに接続するための設定をします。
}
void loop() {
  Serial.println( firebase.read("Nefry"));//FireBaseからデータを読み込みします
  //Serial.println( firebase.read("Nefry/NefryTest"));//FireBaseからデータを読み込みします
  delay(10000);
}

認証機能を使う場合

begin関数には、シークレットキーで認証ができるように引数を渡すことができます。 その設定について説明します。

Firebaseでの設定

まず設定したいプロジェクトを開き、設定マークから「プロジェクトの設定」をクリックします。

プロジェクトの設定の「サービスアカウント」を選択します。

次に「Database secrets」を押すとシークレットと書かれた部分にマウスを合わせるとシークレットキーを確認することができますので、それをコピーします。このシークレットキーをNefry BTに設定します。

Nefry BTでの設定

Firebaseに書き込むサンプルをベースに認証情報を追加してみます。

変更点はbegin関数の2つ目の引数に先ほど取得したシークレットキーを入れます。以上で完了です。

#include<NefryFireBase.h>
NefryFireBase firebase;
void setup() {
  firebase.begin("APPID.firebaseio.com", "SecretKey");//FireBaseに接続するための設定をします
}
int i = 0;
void loop() {
  DataElement elem = DataElement();
  elem.setValue("sensor", i++);
  elem.setValue("NefryTest", 500 + i++);
  firebase.send("Nefry", &elem);//FireBaseに新規キーを追加し、そこにデータを追加します
}

まとめ

Firebaseを使うことで、簡単にスマートフォンアプリやWebサービスと連携することができます。

Nefry BTでさらにいろんなことができますのでぜひ試してみてください。

Last edited on 2018.08.13 by わみ

Firebase

using Firebase Library

今回は、Nefry BTライブラリに導入されているFirebaseライブラリの紹介を行います。 一通り機能を紹介しますので、ぜひFirebaseを使った作品を作る際に参考にしてください。

Firebaseとは?

Firebaseは、Googleが運営するBaaSです。

BaaSとはサーバ側のバックエンドを提供してくれるサービスで、データベースや認証部分などのサービスをサーバ側のコードを書かずに実装できる優れものです。

AndroidやiOS、WebやUnityなど様々な言語向けにSDKが出ており、簡単に機能を自分のアプリに組み込むことができます。

公式サイト

2018/8月現在、トップページに表示されている機能だけでも、機械学習や認証機能など17種類の多種多様なサービスが提供されています。

Nefry BTのFirebaseライブラリでできる機能は、「Realtime Database」の読み書きです。

まずはNefry BTから読み書きするために、Firebaseの準備をしていきます。

Firebaseの準備をしよう

公式サイトを開くと「コンソールへ移動」というリンクがあるのでそこをクリックします。

ログインしていない場合、どのGoogleアカウントでログインするか確認されますので、ログインをして次に進みます。

コンソール画面を開くと「プロジェクトを追加」というボタンがあるのでそれをクリックします。

プロジェクトの追加画面が表示されたら、「プロジェクト名」を記入します。 その後下のチェックボックスにチェックを入れると、「プロジェクトを作成」をクリックできるのでクリックして作成します。

プロジェクトが作成できると次のような画面が表示されます。 その中からDatebaseの「使ってみる」というリンクをクリックします。

「Realtime Datebase」を移動したページから探して、「データベースを作成」をクリックします。

Realtime Datebaseのセキュリティルールを確認されますが、「テストモードで開始」を選び、「有効にする」をクリックします。 実際に使う際には適したセキュリティルールで運用してください。

準備が完了すると、次のような画面が表示されます。

ページ中央に表示される https://を抜いたURLをNefry BTに設定するのでメモしておいてください。

例えば下記のようになります。

  • Firebaseに表示されたURL: https://nefryfirebase-14bb0.firebaseio.com/
  • Nefry BTに設定するURL: nefryfirebase-14bb0.firebaseio.com

Firebaseに書き込み

Firebaseに書き込む方法は「新規追加」「書き込み」「データ更新」の3つあります。違いについてはそれぞれの機能説明で紹介します。

新規追加

Firebaseに保存するタイミングで一意のキーを割り振られ、その配下にデータを保存します。

詳しくはドキュメントと、保存されたデータのスクリーンショットをご覧ください。

データのリストの保存 | Firebaseドキュメント

#include<NefryFireBase.h>

//Firebaseに新規キーを追加しそこに情報を書き込みます
NefryFireBase firebase;

void setup() {
  firebase.begin("APPID.firebaseio.com");//FireBaseに接続するための設定をします。
}

int i = 0;

void loop() {
  DataElement elem = DataElement();
  elem.setValue("sensor", i++);
  elem.setValue("NefryTest", 500 + i++);
  firebase.send("Nefry", &elem);//FireBaseに新規キーを追加し、そこにデータを追加します
  delay(10000);
}

書き込み

Firebaseにデータを保存します。更新と似ていますが、こちらはデータを上書きします。

PUTによるデータの書き込み | Firebaseドキュメント

#include<NefryFireBase.h>
//Firebaseにデータを書き込みます
NefryFireBase firebase;
void setup() {
  firebase.begin("APPID.firebaseio.com");//FireBaseに接続するための設定をします。
}
int i = 0;
void loop() {
  DataElement elem = DataElement();
  elem.setValue("sensor", i++);
  elem.setValue("NefryTest", 500 + i++);
  firebase.write("Nefry", &elem);//FireBaseに新規キーを追加し、そこにデータを追加します
  delay(10000);
}

データ更新

Firebaseにデータを保存します。書き込みと似ていますが、こちらは元々あるデータを引継ぎつつupdate関数に入れた値のみ更新します。

PATCHによるデータの更新 | Firebaseドキュメント

#include<NefryFireBase.h>
//FireBaseのデータを更新します
NefryFireBase firebase;
void setup() {
  firebase.begin("APPID.firebaseio.com");//FireBaseに接続するための設定をします。
}
int i = 0;
void loop() {
  DataElement elem = DataElement();
  elem.setValue("sensor", i++);
  elem.setValue("NefryTest", 500 + i++);
  firebase.update("Nefry", &elem);//FireBaseのデータを更新します
  delay(10000);
}

Firebaseのデータを削除

Firebaseにあるデータを削除します。

データの削除 | Firebaseドキュメント

#include<NefryFireBase.h>
//FireBaseのデータを削除します
NefryFireBase firebase;
void setup() {
  firebase.begin("APPID.firebaseio.com");//FireBaseに接続するための設定をします。
}
void loop() {
  //firebase.remove("Nefry");//FireBaseのデータを削除します
  firebase.remove("Nefry/sensor");//一部削除例:FireBaseのデータを削除します
  delay(10000);
}

Firebaseのデータを読み込み

Firebaseにあるデータを読み込みします。

データの取得 | Firebaseドキュメント

#include<NefryFireBase.h>
//FireBaseからデータを読み込みします
NefryFireBase firebase;
void setup() {
  firebase.begin("APPID.firebaseio.com");//FireBaseに接続するための設定をします。
}
void loop() {
  Serial.println( firebase.read("Nefry"));//FireBaseからデータを読み込みします
  //Serial.println( firebase.read("Nefry/NefryTest"));//FireBaseからデータを読み込みします
  delay(10000);
}

認証機能を使う場合

begin関数には、シークレットキーで認証ができるように引数を渡すことができます。 その設定について説明します。

Firebaseでの設定

まず設定したいプロジェクトを開き、設定マークから「プロジェクトの設定」をクリックします。

プロジェクトの設定の「サービスアカウント」を選択します。

次に「Database secrets」を押すとシークレットと書かれた部分にマウスを合わせるとシークレットキーを確認することができますので、それをコピーします。このシークレットキーをNefry BTに設定します。

Nefry BTでの設定

Firebaseに書き込むサンプルをベースに認証情報を追加してみます。

変更点はbegin関数の2つ目の引数に先ほど取得したシークレットキーを入れます。以上で完了です。

#include<NefryFireBase.h>
NefryFireBase firebase;
void setup() {
  firebase.begin("APPID.firebaseio.com", "SecretKey");//FireBaseに接続するための設定をします
}
int i = 0;
void loop() {
  DataElement elem = DataElement();
  elem.setValue("sensor", i++);
  elem.setValue("NefryTest", 500 + i++);
  firebase.send("Nefry", &elem);//FireBaseに新規キーを追加し、そこにデータを追加します
}

まとめ

Firebaseを使うことで、簡単にスマートフォンアプリやWebサービスと連携することができます。

Nefry BTでさらにいろんなことができますのでぜひ試してみてください。

Last edited on 2018.08.13

by わみ

Nefrybt-index-