開発したアプリに消費型の課金を実装していたのですが、サーバーを使ったレシート検証を行っていませんでした。
リワード広告を見ても課金に近いアイテムを貰えるようにしており、課金ペースも3日に1件くらいだったので、ローカルでのレシート検証、端末ID、日付照会だけでも問題なかったのですが、最近課金額も件数も増えてきたので、Firebase を利用したユーザー管理とレシート検証の方法を残しておきます。
サーバー側の処理はゼロから行ったので、実装してーなーって方いたらぜひ!
ちなみに、このアプリにはリリース当初から Firebase の Analytics と Crashlytics を連携していたので、その方法はここでは記載しません。
課金実装の方法も記載しないのでご了承ください。
これらに関してはたくさん記事が転がっているので、ご自身で調べてみてください。
記事の内容としては、Firebase で使うための Node.js や FirebaseCLI 等のインストール、Firebase でのデータベース作成や設定、実機でのコーディングや検証など、結構なボリュームになるので、複数回に分けて掲載していきます。
前提条件
・macOS BigSur
・Homebrew
・Xcode12.3
・Swift5
・Node.js(未インストール)
※課金実装や Firebase 連携は済んでいるものとします。
Node.js をインストールする
インストールする場合は Homebrew を使いますが…
1 |
% brew install nodebrew |
をかますと…
はい、初っ端から以下のエラーが出ました。笑(出ない方はスルー!)
権限ないよって言われてるのですが、権限変更や brew cleanup しても変わらず…
Homebrew の公式ドキュメントにあるコマンドを再試行することで解決しました。
1 |
% /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" |
無事に再インストールを終えたら、以下のコマンドでバージョンを確認します。
1 |
% nodebrew -v |
はい、私はさらに以下のエラーが出ました。笑
Warning: Failed to create the file
Warning: /Users/***UserName***/.nodebrew/src/v14.15.4/node-v14.15.4-darwin-x64.ta
Warning: r.gz: No such file or directory
curl: (23) Failed writing body (0 != 978)
download failed: https://nodejs.org/dist/v14.15.4/node-v14.15.4-darwin-x64.tar.gz
テンサゲですが、ディレクトリを作れば問題ないです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
% mkdir -p ~/.nodebrew/src // ディレクトリを作成 % nodebrew install-binary latest // 最新版をインストール % nodebrew ls // インストールされたバージョンが以下のコメントのように表示される // v15.5.1 // // current: none % nodebrew use v15.5.1 % nodebrew ls // v15.5.1 が有効化(current)されてるか確認 // v15.5.1 // // current: v15.5.1 % echo 'export PATH=$HOME/.nodebrew/current/bin:$PATH' >> ~/.zprofile |
んで、ターミナルを再起動しましょう!
1 |
% node -v |
をたたいて、有効化したバージョンが表示されたら完了です!
nをインストールする
n という node のバージョン管理のためのコマンドです。
便利なのでインストールしておきましょう
1 |
% npm install -g n |
はい、また出ましたエラァァァ ᕕ( ͡° ͜ʖ ͡°)ᕗ
npm ERR! code EACCES
npm ERR! syscall access
npm ERR! path /usr/local/lib/node_modules
npm ERR! errno -13
npm ERR! Error: EACCES: permission denied, access ‘/usr/local/lib/node_modules’
npm ERR! [Error: EACCES: permission denied, access ‘/usr/local/lib/node_modules’] {
npm ERR! errno: -13,
npm ERR! code: ‘EACCES’,
npm ERR! syscall: ‘access’,
npm ERR! path: ‘/usr/local/lib/node_modules’
npm ERR! }
npm ERR!
npm ERR! The operation was rejected by your operating system.
npm ERR! It is likely you do not have the permissions to access this file as the current user
npm ERR!
npm ERR! If you believe this might be a permissions issue, please double-check the
npm ERR! permissions of the file and its containing directories, or try running
npm ERR! the command again as root/Administrator.
npm ERR! A complete log of this run can be found in:
npm ERR! /Users/***UserName***/.npm/_logs/2020-12-27T12_41_32_190Z-debug.log
しつこくらい ERR! が並びまくったふざけたエラーですが、npm のデフォルトディレクトリを作成して設定するだけでイケます。
1 2 3 4 |
$ mkdir ~/.npm-global $ npm config set prefix '~/.npm-global' $ echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.zprofile $ source ~/.zprofile |
もう一度さっきの npm install -g n を実行してくだーさい。
さらっと成功したと思います。
FirebaseCLI をインストール
以下のコマンドで FirebaseCLI をインストールして Firebase にログインできるようにします。
1 2 3 |
% npm install -g firebase-tools // firebase コマンドを有効にする % firebase login // firebase にログインする |
2行目を実行するとブラウザが起動するので、画面の案内に沿って必要な情報を入力しましょう!
ログインしたら、Firebase で作成されているプロジェクトを表示してみます。
1 |
% firebase projects:list |
僕は4つプロジェクトがあったので、以下のように表示されます。
*ProjectID と ProjectNumber は消してます
ここに表示されない場合は Firebase にログインしてiOSプロジェクトを新規作成してください。
次は Firebase をいじるのですが、区切りがいいので、一旦ここで終了します!
さいごに
インストール作業からめちゃくちゃエラー出まくりました。笑
ディレクトリ作れば解決したけど、一作業するたびにエラー出るのは初めてでした ◔̯◔
コメント