Я обращаюсь к Firebase с просьбой обновить некоторые данные одним нажатием кнопки сохранения. Я могу успешно вернуть ответ о состоянии, но не могу запустить загрузчик, когда я ожидаю, чтобы обновление было успешным. Я уверен, что это проблема asyn c, которую я испортил. Может ли кто-нибудь увидеть, что я делаю неправильно?
Я вижу в базе данных, что данные успешно обновляются, и когда состояние загружается, я вижу, что состояние обновлено. Обычно я беру код ответа из выноски и что-то с ним делаю, но ответ от firebase не возвращает ничего, кроме «неопределенного» (даже когда я жду).
const EditProfile = ({ state2, setState2 }: EditProfileProps) => {
const { state, updateUserData } = useContext(AuthContext);
const { profile } = state2;
const { images, interests } = profile;
const [isLoading, setIsLoading] = useState(false);
const updatedUserData = {
images: profile.images
};
const updateData = async() => {
if(profile.images.includes(null) || profile.images.length != 3){
alert('You must have three photos. Please complete profile and save again.');
}else{
setIsLoading(true);
await updateUserData(updatedUserData, 'editInfo', changedValue).then(()=>{ setIsLoading(false)})
}
};
return (
<ScrollView>
{isLoading && <Loading text="Saving Data..." />}
<View style={styles.listContainer}>
...
<TouchableOpacity style = {styles.buttonContainer} onPress={updateData}>
<Text style={styles.buttonText}>
Save
</Text>
</TouchableOpacity>