2016-08-21 95 views
2

我使用AsyncStorage來存儲一些Firebase用戶數據。反應原生AsyncStorage firebase JSON值'<null>'類型NSNull不能轉換爲NSString

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

陣營本地與下面的錯誤吹起來,當我嘗試檢索數據

AsyncStorage.getItem('firebaseUser') 

JSON值 '類型' NSNull不能轉換到的NSString + [RCTConvert的NSString: ] + 226 RCTConvert.m:56

似乎火力地堡回來與一些null數據(displayNamephotoUrl等)不確定它是否相關。

版本:

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

更新: 我居然把範圍縮小到火力地堡模塊使用AsyncStorage來存儲自己的數據。當發生這種情況時,我收到JSON <null>錯誤。當我清除AsyncStorage時,它再次起作用。這裏的火力地堡數據對象的樣子:

"{ 
    "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

AsyncStorage可以處理的對象空字段就好了,這是不是這裏的問題。也許在這裏粘貼串聯的'data'對象以便於調試? – jevakallio

+0

@jevakallio,我增加了一些細節。感謝您的支持! – manni

+0

我看到的代碼中沒有任何明顯的錯誤,害怕我不能有任何幫助。祝你好運! :) – jevakallio

回答

3

AsyncStorage希望你給它調用setItemstring,但你給它一個對象。字符串化嘗試的火力點數據保存它之前:

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

和解析它,當你讀回:

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

我實際上正在對它進行字符串化。否則它根本不會保存。我修改了這個問題來反映這一點。 – manni

相關問題