Я использую React Native, Firebase и реагировать навигатор.
В компоненте LoadingScreen я наблюдаю изменения состояния (onAuthStateChanged)
componentDidMount() {
this.timer = setInterval(
() => firebase.auth().onAuthStateChanged(user => {
user ? this.props.navigation.navigate("App") : this.props.navigation.navigate("Auth");
}),
30,
);
}
В моем AuthStack в компоненте ChooseRole у меня есть функция, в которой я хочу зарегистрировать пользователя вместе с ролью должно быть выполнено.
if (this.state.role === 'child') {
Firebase
.auth ()
.createUserWithEmailAndPassword (email, password)
.then (() => {
const addChildRole = fc.httpsCallable (('addChildRole'));
addChildRole ({email: this.state.email}). then ((result) =>
this.setState ({role: result}));
})
.catch (errorMessage => {
console.log (errorMessage)
});
})
Проблема в том, что перед тем, как .then () вызывает, когда я добавляю роль, состояние Auth, вероятно, изменяется и перемещается в приложение. В AppStack, компонент Direction, основанный на роли, я хочу нацелить на дочерний или родительский компонент, но вызывая
firebase.auth (). CurrentUser.getIdTokenResult ()
.then ((idTokenResult) => {
if (idTokenResult.claims.parent || idTokenResult.claims.child) {
}
idTokenResult.claims.parent и idTokenResult.claims.child дает undefined.
Я хочу справиться с предоставлением пользователям роли регистрации и входа в систему, а затем переходить к соответствующему компоненту с помощью Direction. js.
У вас есть идеи, как решить эту проблему?