Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
NaotoAkiyama
Advisor
Advisor


はじめに


本ブログではSAPのローコード・ノーコードプログラミングツールであるSAP AppGyverとGoogle Firebaseの連携について3回にわたって紹介します。

SAP AppGyver


モバイル、デスクトップ、ブラウザ、テレビなど、あらゆるデバイスに対応したアプリケーションが作成可能なノーコードプラットフォームです。ドラッグ&ドロップの操作を中心に少ないコーディングで簡単にアプリケーションを開発できます。

参考:SAP AppGyverの基本 変数の操作

今回は、SAP AppGyverで接続やロジックの作成が標準でサポートされているGoogle Firebaseを使用します。Google Firebaseと連携させることで、簡単にユーザー認証機能やデータベース機能、ストレージ機能を付け加えることができ、開発できるアプリケーションの幅を広げることができます。近々に、SAP AppGyverオリジナルとなるBackend as a Serviceの機能がリリース予定となっていますので、そちらの機能にもご期待ください。

前回は、Google Firebaseの連携に必要な基本設定について説明しました。今回は、Firebase Authenticationによるユーザー認証機能(ログイン機能やサインアップ機能)の追加について説明します。目次は以下の通りです。

  1. Firebase側の設定

  2. SAP AppGyver側の設定(Auth)

  3. Loginページの作成

  4. Signupページの作成

  5. Current Userの取得

  6. Sign out機能の作成


対象者

  • SAP AppGyverでアプリを作ったことがある人(簡易的なものでもOK)

  • Firebaseを初めて触る人


必要準備

  • SAP AppGyver、Firebaseのアカウントの作成

  • SAP AppGyverとFirebaseの連携済み(第1回のブログの内容)


1. Firebase側の設定


まず、Firebase側でユーザー認証機能の設定を行います。Authenticationのページを開き、始めるを選択します。


SAP AppGyverでは、メール/パスワードのログインプロバイダがサポートされているため、今回はメール/パスワードを選択します。


メール/パスワード、メールリンクそれぞれ有効にするか選択できますが、今回はメール/パスワードのみ有効にします。

保存を押すことで、Firebase側のメール/パスワードを使用したユーザー認証機能の設定が完了しました。

2. SAP AppGyver側の設定


続いては、SAP AppGyver側の設定を行っていきます。

まずは、Authタブを開き、Authenticationを有効化します。


認証方法は、先ほどFirebase側で設定を行ったGoogle Firebsae email/password authenticationを選択します。

このとき、自動で生成されたFirebase Authenticationというログインページが作成されます。

下の画面のChoose initial viewより、アプリを起動したとき、最初に現れるページを設定できます。今回はログインページであるFirebase Authenticationに設定します。


続いて、Global canvasのロジックキャンバスを開きます。Firebaseの機能を使うためにはアプリが起動したときに、Firebaseを初期化する必要があります。Flow function marketよりInitialize Firebaseをインストールし、App launchedブロックに接続します。



3. Loginページの作成


先ほど作成したFirebase Authenticationページは以下のような画面になっています。

作りたいUIに合わせて、ロゴやボタンのスタイル、テキストを変更することが可能です。


現在、ログイン機能しかないため、サインアップ機能を追加します。まずは、このログインページにサインアップページへと飛ぶリンクを作成します。

左側のコンポーネントから、TextをLog inボタンの下に配置し、Sign upと表示させます。


Sign upのTextを選択した状態で、下のshow logicを押します。左側のFlow FunctionよりOpen pageをキャンバスへと移動させ、Component tapとつなぎます。Open pageを選択し、propertiesのPage項目に、Sign upページを選択します。(事前にSign upページを作成する or 後ほどSign upページを作成したあとに設定してください。)


続いて、Sign upページのAdvanced PropertiesAllow page to be opened without authenticationをONにします。そうすることで、ログインしていない状態でもページを開くことが可能になります。


以上により、Sign upのテキストを押すことで、Sign upページへと遷移します。

4. Sign upページの作成


続いて、Sign upページを作りこんでいきます。

同じようなUIを使用するため、Log inページよりContainer2をコピーして、Sign upページに貼り付けます。

ここで、emailとパスワードを一時的に保存するため変数(page variables)をそれぞれ作成します。ここに入力したemailとパスワード情報が保存されます。



サインアップ機能はAPIを使うことで実現します。こちらがサインアップ機能で使用するAPI Referenceです。

DATAタブよりREST API direct integrationをデータリソースに追加します。Resource URLhttps://identitytoolkit.googleapis.com/v1を設定、またQuery parameterにFirebaseのAPI Keyを設定します。API KeyはFirebaseダッシュボードのプロジェクト設定画面より、確認することができます。











Resource URL https://identitytoolkit.googleapis.com/v1
Key(Query parameter項目) FirebaseのAPI Key


今回は、Create Record(POSTメゾット)を使用します。Create Recordを有効にしたのち、Relative path/accounts:signUp を追加します。







Relative path /accounts:signUp



API Referenceに沿って、Schemaを作成します。Custom Schemeを選択し、下の図のようにPropertyを設定していきます。


APIの準備ができたので、ロジックを使って実際にサインアップ機能を実装します。まず、Component tapブロックとCreate Recordをつなぎます。フォームに入力されたメールアドレスとパスワードのユーザーの作成をRecord propertiesより設定を行います。



メールアドレスとパスワードは、page variablesより設定し、ReturnSecureTokenでは、trueを入力します。以上により、フォームに入力されたメールアドレスとパスワードによって、サインアップがなされます。


参考:How to Build User Signup for Firebase in Appgyver?

5. その他の機能


Get Current User


現在ログインしているユーザーのuid(ユーザー固有のid)、メールアドレスなどの情報を得取得。詳細はこちら

Sign out


サインアウト機能。詳細はこちら

まとめ


今回は、Firebase Authenticationによるユーザー認証機能について説明しました。あらかじめロジックのFunctionが用意されているFirebase Authenticationを使用することで、ログインやサインアップ、サインアウトなどの機能を簡単に追加することができました。

次回は、Cloud FirestoreとFirebase Storageを使ってデータベース機能、ストレージ機能を追加していきます。