【发布时间】:2020-02-18 22:18:47
【问题描述】:
我想更新新创建的用户数据。返回的 JSON 为:
{
"user":{
"uid":"test123",
"displayName":null,
"photoURL":null,
"email":"test12@test.com",
"emailVerified":false,
"phoneNumber":null,
"isAnonymous":false,
"tenantId":null,
"providerData":[
{
"uid":"test12@test.com",
"displayName":null,
"photoURL":null,
"email":"test12@test.com",
"phoneNumber":null,
"providerId":"password"
}
],
"apiKey":"test123",
"appName":"[DEFAULT]",
"authDomain":"test123.firebaseapp.com",
"stsTokenManager":{
"apiKey":"test123",
"refreshToken":"test123",
"accessToken":"test123",
"expirationTime":1571238989357
},
"redirectEventId":null,
"lastLoginAt":"1571235389108",
"createdAt":"1571235389108"
},
"credential":null,
"additionalUserInfo":{
"providerId":"password",
"isNewUser":true
},
"operationType":"signIn"
}
这是我的标注和更新:
createUser = async (userData) => {
return await firebase.auth().createUserWithEmailAndPassword(userData.get('userName'), userData.get('password'))
.then((authData) => {
firebase.database().ref('users/' + authData.user.uid + '/').set({
fullName: userData.get('fullName'),
pictures: userData.get('pictures'),
phoneNumber: userData.get('phoneNumber')
});
})
};
是否可以在用户表中添加自定义字段?
正在发生一些事情。似乎在 .then 语句中看不到 userData。因此,为了解决这个问题,我尝试将 userData JSON 作为参数传递。这没有用。然后我从 userData 中取出每个值,将其保存到 const 中并传递该值。这没有用。
我可以看到 userData 在 .then 语句之前有值。我能够使用正确的用户名和密码成功创建一个新用户。这对我来说意味着:
A - 我没有正确传递 userData JSON 或
B - 我不能像现在这样向 Firebase 传递数据
我的最终目标是注册一个用户,然后获取他们从注册表单(又名 userData)输入的所有数据并用它更新用户表。
我正在使用的文章是: https://firebase.google.com/docs/auth/web/manage-users https://medium.com/mindorks/firebase-realtime-database-with-react-native-5f357c6ee13b
调用createUser函数的主类:
const signUp = (dispatch) => {
return async (userData)=>{
try{
const response = await config.createUser(userData);
console.log('sign up resonse1: ' + response); //coming back as undefined
//todo:: figure out how to parse out the apikey out of response
await AsyncStorage.setItem('token', '123mockToken');
dispatch({type: 'sign_up', payload: '123mockToken'});
navigate('mainFlow');
} catch(e){
dispatch({type: 'add_error', payload: '' + e}); //we call dispatch anytime we want to update our state
}
}
};
【问题讨论】:
标签: json firebase react-native firebase-realtime-database firebase-authentication