Firebase Authentication の キーデータ相互登録設定を忘れてハマるな

いまさら知ったのですが。

On October 31, 2018, we will no longer actively contribute to, or accept issues and pull requests on, the open sourced SDKs (iOS, Android, Unity) on GitHub. After this date we will also stop releasing the SDKs through Cocoapods, Carthage, and Bintray JCenter.

👉 Discontinuing support for Twitter Kit SDK hatena-bookmark

Twitter 公式 SDK の代替として Firebase Authentication を Twitter で使ってみました。

実装とは別に、各管理画面から発行されるキーなどのテキストを別のサービスの管理画面に登録することが必要になります。

忘れやすくて抜けやすくてハマりやすいので整理しておきます。

 

Twitter Consumer API Key / Secret Key

Twitter Developers で作成される 「Consumer API Key / Secret Key」 を Firebase Authentication と Android Studio 上でXMLリソースとして登録します。

Twitter Developers consumer api key secret key

Twitter Developers で作成される「Consumer API Key / Secret Key」は Firebase Authentication に登録します。

<string name="twitter_consumer_key" translatable="false">YOUR_CONSUMER_KEY</string>     <string name="twitter_consumer_secret" translatable="false">YOUR_CONSUMER_SECRET</string>
👉 Twitter Developers hatena-bookmark
👉 Firebase console hatena-bookmark
👉 firebaseui.xml - firebase/snippets-android hatena-bookmark

 

Firebase Authentication Callback URL

Firebase Authentication で作成される「Callback Url」は Twitter Developers に登録します。

Firebase Authentication で作成される「Callback Url」は Twitter Developers に登録します。

Firebase Authentication で作成される「Callback Url」は Twitter Developers に登録します。

Firebase Host Config で独自ドメインにしたほうが感じが良いです。

👉 Firebase Authで独自ドメインが使いたい hatena-bookmark

 

Google Play アプリリリースキー SHA-1 フィンガープリント

アプリをリリースに使われる公開鍵のSHA-1のフィンガープリントです。

リリース鍵は、開発者が作成したり、Google Play 側で変更時に作成されたりするので、実際のリリースに利用されてる鍵を認把握している Google Play Console で確認すると間違いないです。

Google Play Console で確認して Firebase プロジェクトの概要 に登録します。

[設定] - [アプリの完全性]

[プロジェクトの概要] - [設定(歯車マーク)]
Google Play Console で確認して Firebase Authentication に登録します。

👉 Play Console hatena-bookmark

 

Android Studio デバッグキー SHA-1 フィンガープリント

デバック時に使われる鍵のSHA-1フィンガープリントです。

Android Studio の Terminal や Gradle ウインドウで確認して Firebase プロジェクトの概要 に登録すると、デバッグ時にも使えます。

Android Studio の Terminal や Gradle ウインドウで確認して Firebase Authentication に登録します。

Android Studio の Terminal や Gradle ウインドウで確認して Firebase Authentication に登録します。

👉 【コピペ用】Android「Google アプリ署名」コマンドまとめ hatena-bookmark
👉 google maps - How to get the SHA-1 fingerprint certificate in Android Studio for debug mode? - Stack Overflow hatena-bookmark
👉 Gradle タスクリストが見えない件【Android Studio】 hatena-bookmark

 

まとめ


Twitter Developers 
Consumer API Key / Secret Key
→ Firebase Authentication
→ Android Studio XML


Firebase Authentication 
Callback URL
→ Twitter Developers


Google Play Console
Release Key Fingerprint SHA-1
→ Firebase Project


Android Studio
Debug Key Fingerprint SHA-1
→ Firebase Project

箇条書きではきっとどれかが抜けてしまいそうなので手書きでも書いておきます。

Twitter 公式 SDK の代替として Firebase Authentication を Twitter で使ってみました。

👉 Firebase Authentication  |  Firebase Documentation hatena-bookmark


iPhone Android アプリ横断検索 をつくってみた

作ってみました javascript でブックマークレットを!

なんかパソコンで探したかったので!

iPhone Android アプリ横断検索

iPhone と Android アプリを横断で検索します。


(() => {
  const word = window.prompt("Enter the keyword.");
  if (word) {
    const q = encodeURIComponent(`${word} site:play.google.com OR site:apps.apple.com`)
    const url = `https://www.google.com/search?q=${q}`;
    window.open(url, "_blank");
  }
})();

以下、圧縮版ブックマーク登録用。


(()=>{var a=window.prompt("Enter the keyword.");a&&(a=encodeURIComponent(`${a} site:play.google.com OR site:apps.apple.com`),window.open(`https://www.google.com/search?q=${a}`,"_blank"))})();

ボタンに付けてみた。押してみてね!

気に入ったアプリを見つけたら、ブラウザの機能を使って、その端末へそのまま送ると良いです。

気に入ったアプリを見つけたら、ブラウザの機能を使って、その端末へそのまま送ると良いです。
👉 スマホのChromeで閲覧中のWebページをパソコンへ送信する方法【iPhone & Android】 

👉 GitHub Gist に置いた Javascript をブックマークレットとして実行する 
👉 Google「Closure Compiler」 (クロージャコンパイラ) の使い方 


【Kotlin】そのアプリが、フォアグラウンドになったとき、フォアグラウンドであるかどうか、を検知・検出する

現在、絶賛?キャンペーン中ですかね。

アプリ起動時広告は、アプリの読み込み画面を収益化することを望むパブリッシャー様を対象とした広告フォーマットです。この広告は、ユーザーがアプリをフォアグラウンドに移動すると表示され、いつでも閉じることができます。

アプリ起動時広告は、アプリの読み込み画面を収益化することを望むパブリッシャー様を対象とした広告フォーマットです。この広告は、ユーザーがアプリをフォアグラウンドに移動すると表示され、いつでも閉じることができます。

👉 アプリ起動時広告  |  Android  |  Google Developers 

眺めてましたよ、おぼつかないサンプルコードを。

複数のコールバックたちに苦しみながらサンプルコードを容赦なく大幅改変していく様子が、API設計の難しさを表してると思います。

今回は、

「アプリがフォアグラウンド(可視状態)になったら何らかの処理をする。」

というやつ関連を抽出しておきます。


class MyApplication : Application(), Application.ActivityLifecycleCallbacks, LifecycleObserver {

  override fun onCreate() {
    super.onCreate()

    ProcessLifecycleOwner.get().lifecycle.addObserver(this)

  }


  @OnLifecycleEvent(Lifecycle.Event.ON_START)
  fun onMoveToForeground() {
    // Show the ad (if available) when the app moves to foreground.

    // do something

  }

👉 googleads-mobile-android-examples/MyApplication.kt at master · googleads/googleads-mobile-android-examples 

Deprecated なのを置き換えて、継承から外します。


ProcessLifecycleOwner.get().lifecycle.addObserver(
  object : DefaultLifecycleObserver {
    override fun onStart(owner: LifecycleOwner) {
      // do something
    }
  }
)


便利ですねこれ。

あと、

「アプリがフォアグラウンド(可視状態)かどうか。」

というやつ。


val foreground: Boolean
  get() = ProcessLifecycleOwner.get().lifecycle.currentState.isAtLeast(Lifecycle.State.RESUMED)

ここは、「RESUMED」でいいのか知らんが、試せばいいか。

👉 DefaultLifecycleObserver や LifecycleEventObserver の使い方