Я хочу обновить вновь созданные данные пользователя. Возвращается 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')
});
})
};
Возможно ли добавить в пользовательские поля таблицы пользователя?
Несколько вещей происходит. Похоже, что userData не может быть видно в .hen оператора. Поэтому, чтобы решить эту проблему, я попытался передать JSON userData в качестве параметра. Это не сработало. Затем я выделил каждое значение из userData, сохранил его в const и передал это значение. Это не сработало.
Я вижу, что в userData есть значения перед оператором .then. Я могу успешно создать нового пользователя с правильными именем пользователя и паролем. Для меня это означает либо:
A - Я неправильно передаю userData
JSON, либо
B - Мне не разрешено передавать данные в базу данных, как я делаю
Моя конечная цель - зарегистрировать пользователя, а затем взять все данные, которые он вводит, из регистрационной формы (он же 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
}
}
};