はじめに
Stripe & Firebase によるサブスクリプションを試した際のメモ。
TL;DR
- Stripe 公式の サブスク用 Firebase Extension を試した
- 導入後の Tips を簡単に整理した
- 購読状況の確認は Firestore の
status
とcurrent_period_end
を使えば OK - 購読キャンセルは Stripe でカスタマーポータルの設定を変更すれば OK
- 購読状況の確認は Firestore の
Stripe & Firebase によるサブスクリプションを試した際のメモ。
status
と current_period_end
を使えば OKFirebase 公式ドキュメント Firebase による支払い処理 を試した際のメモ。
Cordova Android アプリで HTTP(≠ HTTPS) 通信をした際に出る net::ERR_CLEARTEXT_NOT_PERMITTED
エラーの解決方法
cleartextTrafficPermitted="false"
がデフォルトになったAndroidManifest.xml
に android:usesCleartextTraffic="true"
を追加すれば HTTP 通信を許可できるplatforms/android/app/src/main/AndroidManifest.xml
config.xml
に edit-config
を追加すれば OKCordova Android で iframe 内のリンクをシステムデフォルトブラウザで開く方法。
前置きなどは 親 Window で iframe からのデータ受信、イベント検出する方法 の「前置き」と同じ。
以下はとあるプロジェクトの要件など。
- Cordova で iOS/Android まとめて開発
- コンテンツ内部は先方が作成
- コンテンツ内に先方管理外のサイトへのリンクがある
- ガワはこちらで作成して、コンテンツを
iframe
で読み込むiframe
内のリンクをシステムデフォルトブラウザで開きたいiOS は問題なかった(意図通りに動作した)が、Android だけ上手く動かなかった。具体的には、リンクをタップすると
iframe
内で開こうとするが、X-Frame-Options の設定によりnet::ERR_BLOCKED_BY_RESPONSE
となる、というもの。
iframe
側: postMessage
でリンク先 URL を送信preventDefault
で元イベント(リンク先を iframe
内で開こうとするアクション)を抑止created
, beforeDestroy
フックでイベントリスナを 追加/削除親 Window で iframe
から送られてきたデータを受信したり、iframe
内のイベントを検出する方法。
※イベント検出もデータ送受信機能で実現しているので、厳密にはイベント検出(addEventListener
相当)ではない。
iframe
側から window.postMessage
でデータ送信targetOrigin
を適切に指定(可能なら)addEventListener('message', handler)
で受信ハンドラ設定event.origin
で送信元をチェックiframe
で読み込むサイトが管理外の場合は実現不可(のはず)Cordova iOS アプリで長押し(ロングタップ, ロングプレス)によるコンテキストメニューを無効化する方法。
config.xml
を設定SuppressesLongPressGesture
, Suppresses3DTouchGesture
を true
guzzle/guzzle (PHP HTTP Client) を使って、スマレジ の API 実装サンプル。
もっと効率的な実装方法とかあると思うので、あくまでも一例として。
YouTube で複数のドラフトを一括公開するスクリプト。
Laravel で生 SQL を実行する方法。
DB::statement
を使うDB::statement('UPDATE `my_table` SET `a` = `b`')
HTML で非表示(※)の <input required>
に対して「入力が必要」のダイアログを表示する方法。
※厳密には非表示ではないが、人間的には非表示という感じ。詳細は後述。
display: none;
を使わないinput
を(人間的には)見えなくする