2016-08-21 11 views
2

Firebaseユーザデータを保存するのにAsyncStorageを使用しています。ネイティブのAsyncStorage firebaseに反応します。NSNull型のJSON値 '<null>'をNSStringに変換できません。

AsyncStorage.setItem('firebaseUser', JSON.stringify(data)) 

私は

AsyncStorage.getItem('firebaseUser') 

JSON値のデータを取得しようとすると、ネイティブタイプnsnullを 'の下のエラーで吹いているリアクトは、NSStringの + [RCTConvert NSStringのに変換することはできません。 ] + 226 RCTConvert.m:56

(Firebaseは、いくつかのnullデータに戻ってくることが表示されます10、photoUrlなど)関連があるかどうかは不明です。

バージョン:

"react-native": "^0.31.0", 
"firebase": "^3.3.0", 

アップデート:私は実際に独自のデータを格納するAsyncStorageを使用しているFirebaseモジュールに絞ら 。その場合、JSON <null>エラーが発生します。 AsyncStorageを消去すると、再び動作します。ここでFirebaseデータオブジェクトは次のようになります。

"{ 
    "uid": "XwsK2", 
    "displayName": null, 
    "photoURL": null, 
    "email": "[email protected]", 
    "emailVerified": false, 
    "isAnonymous": false, 
    "providerData": [ 
    { 
     "uid": "[email protected]", 
     "displayName": null, 
     "photoURL": null, 
     "email": "[email protected]", 
     "providerId": "password" 
    } 
    ], 
    "apiKey": "xLxzuyPlUqA88kEfy", 
    "appName": "[DEFAULT]", 
    "authDomain": "abc.firebaseapp.com", 
    "stsTokenManager": { 
    "apiKey": "xLxzuyPlUqA88kEfy", 
    "refreshToken": "AJiUa4Y7b", 
    "accessToken": "eyJhbGciOiJSUzjQzYzU3Nzk5NGVmNGNiy_DlQ8xQO7kq3YXxgntE9Q8YJA", 
    "expirationTime": 1472098951672 
    }, 
    "redirectEventId": null 
}" 
+0

、それはここでの問題はありません。おそらく、より簡単なデバッグのためにstringfied 'data'オブジェクトをここに貼り付けますか? – jevakallio

+0

@ jevakallio、私はいくつかの詳細を追加しました。あなたにキミをしていただきありがとうございます! – manni

+0

私が見ているコードで明らかに間違ったことはありません。がんばろう! :) – jevakallio

答えて

3

AsyncStorageは、あなたがそれstringsetItemを呼び出す与えることを期待していますが、それにオブジェクトを与えています。あなたはそれを保存する前にfirebaseデータを文字列化してみてください。

AsyncStorage.setItem('firebaseUser', JSON.stringify(data)); 

そして、あなたはそれをリードバックするとき、それを解析:AsyncStorageだけで罰金オブジェクトにヌルフィールドを処理することができます

AsyncStorage.getItem('firebaseUser').then(data => data ? JSON.parse(data) : null); 
+0

私は実際にそれをストリング化しています。さもなければそれはまったく保存しません。私はそれを反映するために質問を修正した。 – manni

関連する問題