読者です 読者をやめる 読者になる 読者になる

そーす

福岡在住のプログラマ。SwiftとかKotlinとかJavascriptとかSketchとか触ってます。

(解決)ReactNative+FirebaseではネイティブSDKを使ったほうが良いかも

(追記)解決しました。 やっぱりJavascriptCoreが原因でした。

github.com

f:id:saburesan:20170405095735p:plain

developers-jp.googleblog.com

ここで紹介されてたので、ネイティブSDK入れなくてもいけるのか〜

と思って色々試して見ました。

匿名ログインしてRealtimeDatabaseに書き込みは出来たのですが、Storageへのbase64形式での画像アップデートがぜーんぜん上手く行かなくて

エラーメッセージも

“Firebase Storage: String does not match format ‘base64

って出てるけどデコードしたら問題なかったし超悩みました。

んで、ひっさしぶりにDebug JS Remotelyを起動して見てみよう(基本的にiOSシミュレーターのログをtailするか, adb logcat でログ見てるので)と

起動してアップロードしてみたら、なんとアップロードが成功するではありませんか!!

これから分かるのはReactNativeのJSを実行する環境であるJavascriptCoreでは

FirebaseStorageのputStringの内部で使用される何かが実装されてない or バグがあるということでしょうか。

リファレンスにも書いてありますが、Debug JS Remotelyを実行するとReactNativeのJSはChrome上で動作します。

facebook.github.io

Debug JS Remotelyのオン/オフで成功/失敗が変わるのであればおそらくコレが原因でしょう…

FirebaseはAPIがたくさんあるので全て調べるのは面倒なので、おとなしくネイティブのSDKを入れることにします。