9
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

自前サービスのユーザーアカウントを使ってFirebaseを操作する

Last updated at Posted at 2015-06-07

#そもそもFirebaseってなんですか?

  • BaaS(Backend as a Service)と呼ばれる、クライアントの開発だけに集中できるサービスの一つ
  • データベースの更新通知機能が強力で変更するとリアルタイムと言っていいほどの感覚でクライアントに通知される
  • クライアントからの変更もリアルタイム
  • 最近のアップデートで通信回線がない場合でも使えるようになった
  • facebook,twitter等のソーシャルログイン機能もあって非常に便利です。

今回はカスタム認証(Custom Authentication)にまつわる話をします

  • カスタム認証とは自前サービスのアカウントを使ってFirebaseを操作できるようにする仕組みです。
  • すでに用意されているソーシャルログインは1サイト1アカウントになっているので、facebookとtwitterを同じアカウントとして扱うといったことができません
  • ユーザーから見るとtwitterやfacebook等で別々に扱われるのは違和感を感じるので、こんなときはカスタム認証の出番です

実際に実装してみた

こんな感じですね。

MainActivity.java
        Map<String, Object> payload = new HashMap<String, Object>();
        payload.put("uid", "custom:1");
        payload.put("some", "arbitrary");
        payload.put("data", "here");
        TokenGenerator tokenGenerator = new TokenGenerator(firebaseSecret);
        String token = tokenGenerator.createToken(payload);

        mFirebaseRef.authWithCustomToken(token, new AuthResultHandler("custom"));
    }

#まとめ

  • BaaSは便利なようで、いろいろ制限があるため使えなかった
  • Firebaseは最近になってオフライン機能がついたので良さそうです
  • アカウント管理はカスタム認証を使えば解決できるでしょう。
9
10
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?