Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Firebase Auth signOut函数如何知道导航到简介页面?_Javascript_Firebase_React Native_Firebase Authentication - Fatal编程技术网

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刚刚发布。