Ich benutze Firebase in meiner ionic 3 App und ich möchte Benutzer auf verschiedene Seiten basierend auf ihrem Status umleiten.Gute Möglichkeit, Benutzer auf verschiedene Seiten umzuleiten
Meine aktuellen Code sieht wie folgt aus:
ngOnInit():void {
let that = this;
firebase.auth().onAuthStateChanged((userAuth) => {
//Check if user is logged in on Firebase
if (userAuth && firebase.auth().currentUser) {
this.storage.set("userAuth", JSON.stringify(userAuth));
firebase.database().ref('/accounts/' + firebase.auth().currentUser.uid).on('value', function(snapshot) {
if (snapshot.exists()) {
that.rootPage = TabsPage;
that.userData = snapshot.val();
that.storage.set("userData", JSON.stringify(that.userData)).then((userData:any) => {
that.events.publish('user:created', userData);
});
// set menuOptions
that.menuOptions.header.username = that.userData.firstName + " " + that.userData.lastName;
that.menuOptions.header.picture = that.userData.img;
that.menuOptions.header.email = that.userData.email;
let userCalories = that.calculateCalorieIntake(that.userData);
that.storage.set("userCalories", JSON.stringify(userCalories));
// set rootPage
let premiumExpireDate = new Date(that.userData.premiumExpireDate);
let now = new Date();
if (premiumExpireDate > now) {
that.rootPage = PremiumPage;
}
} else {
that.rootPage = OnboardingPage;
}
});
} else {
//User is not logged in, redirect to LoginPage
that.rootPage = WelcomePage;
}
});
Der Code funktioniert soweit ok, aber ich habe ein paar Probleme hier:
Problem 1: Irgendwann ein Benutzer, der nicht angemeldet ist in wird auf die "OnboardingPage" umgeleitet, kann jemand erklären warum?
Problem 2: Für mich sieht der Code bis jetzt wirklich dreckig aus. Hast du irgendwelche Empfehlungen, um es zu verbessern?