Javascript Firebase Auth signOut函数如何知道导航到简介页面?
我实现了Javascript Firebase Auth signOut函数如何知道导航到简介页面?,javascript,firebase,react-native,firebase-authentication,Javascript,Firebase,React Native,Firebase Authentication,我实现了firebase.auth().signOut(),效果非常好,但我不知道为什么 你知道为什么调用firebase.auth().signOut()时,它会将用户注销,然后自动将用户导航到简介页面(堆栈导航器中的根目录),而无需我在上向其传递导航功能。然后?我本以为我会给它一个。然后导航到介绍页面 import React, { useState, useEffect } from "react"; import { StyleSheet, View, Text, Act
firebase.auth().signOut()
,效果非常好,但我不知道为什么
你知道为什么调用firebase.auth().signOut()
时,它会将用户注销,然后自动将用户导航到简介页面(堆栈导航器中的根目录),而无需我在上向其传递导航功能。然后?我本以为我会给它一个。然后
导航到介绍页面
import React, { useState, useEffect } from "react";
import {
StyleSheet,
View,
Text,
ActivityIndicator,
TouchableOpacity,
TextInput
} from "react-native";
import * as firebase from "firebase";
const AccountScreen = () => {
const db = firebase.firestore();
let user = firebase.auth().currentUser;
const [user_data, set_user_data] = useState(null);
const SignOut = () => {
set_user_data(null);
firebase
.auth()
.signOut()
.then(() => {
console.log("successfully logged out");
})
.catch(error => {
// An error happened.
console.log("error logging out" + error);
});
};
if (user) {
useEffect(() => {
db.doc(`users/${user.uid}`)
.get()
.then(doc => {
set_user_data(doc.data());
})
.catch(error => {
console.log("Error getting document:", error);
});
}, []);
if (!user_data) {
console.log("uh oh! there's a user but they don't have any data");
return (
<View style={styles.container}>
<ActivityIndicator
animating={true}
style={styles.indicator}
size="large"
/>
</View>
);
} else if (user_data) {
console.log("nice! there's a user and they have data");
return (
<View style={styles.container}>
<TouchableOpacity
style={styles.submitButton}
onPress={() => SignOut()}
>
<Text style={styles.submitButtonText}>Sign Out</Text>
</TouchableOpacity>
</View>
);
}
} else {
console.log("no user at all!!");
return (
<View>
<Text>There's an error here</Text>
</View>
);
}
};
export default AccountScreen;
import React,{useState,useffect}来自“React”;
进口{
样式表,
看法
文本,
活动指示器,
可触摸不透明度,
文本输入框
}从“反应本族语”;
从“firebase”导入*作为firebase;
const AccountScreen=()=>{
const db=firebase.firestore();
让user=firebase.auth().currentUser;
const[user\u data,set\u user\u data]=useState(null);
常量注销=()=>{
设置用户数据(空);
火基
.auth()
.signOut()
.然后(()=>{
console.log(“成功注销”);
})
.catch(错误=>{
//发生了一个错误。
console.log(“错误注销”+错误);
});
};
如果(用户){
useffect(()=>{
db.doc(`users/${user.uid}`)
.get()
。然后(doc=>{
设置用户数据(doc.data());
})
.catch(错误=>{
log(“获取文档时出错:”,错误);
});
}, []);
如果(!用户_数据){
log(“哦,有一个用户,但他们没有任何数据”);
返回(
);
}else if(用户数据){
log(“很好!有一个用户,他们有数据”);
返回(
SignOut()}
>
退出
);
}
}否则{
log(“根本没有用户!!”;
返回(
这里有个错误
);
}
};
导出默认帐户屏幕;
你能分享你的代码吗?@GauravRoy刚刚发布。你能分享你的代码吗?@GauravRoy刚刚发布。