【发布时间】:2016-08-21 00:17:33
【问题描述】:
我正在使用AsyncStorage 来存储一些 Firebase 用户数据。
AsyncStorage.setItem('firebaseUser', JSON.stringify(data))
当我尝试检索数据时,React Native 出现以下错误
AsyncStorage.getItem('firebaseUser')
NSNull 类型的 JSON 值 '' 无法转换为 NSString +[RCTConvert NSString:] + 226 RCTConvert.m:56
Firebase 似乎返回了一些 null 数据(displayName、photoUrl 等)不确定是否相关。
版本:
"react-native": "^0.31.0",
"firebase": "^3.3.0",
更新:
我实际上将其缩小到 Firebase 模块正在使用 AsyncStorage 来存储自己的数据。发生这种情况时,我会收到 JSON <null> 错误。当我清除AsyncStorage 时,它又可以工作了。 Firebase 数据对象如下所示:
"{
"uid": "XwsK2",
"displayName": null,
"photoURL": null,
"email": "test@test.com",
"emailVerified": false,
"isAnonymous": false,
"providerData": [
{
"uid": "test@test.com",
"displayName": null,
"photoURL": null,
"email": "test@test.com",
"providerId": "password"
}
],
"apiKey": "xLxzuyPlUqA88kEfy",
"appName": "[DEFAULT]",
"authDomain": "abc.firebaseapp.com",
"stsTokenManager": {
"apiKey": "xLxzuyPlUqA88kEfy",
"refreshToken": "AJiUa4Y7b",
"accessToken": "eyJhbGciOiJSUzjQzYzU3Nzk5NGVmNGNiy_DlQ8xQO7kq3YXxgntE9Q8YJA",
"expirationTime": 1472098951672
},
"redirectEventId": null
}"
【问题讨论】:
-
AsyncStorage 可以很好地处理对象上的空字段,这不是这里的问题。也许在这里粘贴字符串化的
data对象以便于调试? -
@jevakallio,我添加了更多细节。感谢您的参与!
-
我看到的代码没有明显错误,恐怕我帮不上什么忙。祝你好运! :)
-
看起来正确的方式是:
JSON.stringify(data || {}) -
我也有同样的问题,你得到答案了吗?
标签: firebase react-native firebase-authentication