Функция getType () не имеет оператора возврата, поэтому она никогда не вернет значение. Чтобы добиться того, чего вы хотите, вам придется управлять этим асинхронно. Простой способ выполнения sh с использованием состояния.
Предполагая, что компонент, который содержит ваш навигатор, является функциональным, должно работать следующее:
const [exists, setExists] = useState(false);
function getType(){
Firebase.database().ref('allTeachers/' + Firebase.auth().currentUser.uid + '/name')
.once('value').then(function(snapshot){
setExists(snapshot.exists());
})
}
React.useEffect(() => {
getType();
}, []);
...
!user ? (
<Drawer.Screen name = "Log In" component={SignUp}/>
):exists ?(
<>
<Drawer.Screen name = "Session Creation" component={TeacherSession} />
<Drawer.Screen name = "Activate Session" component={StartSession} />
<Drawer.Screen name = "Teacher Details" component={TeacherDetails} />
<Drawer.Screen name = "Sign Out" component={SignOut} />
</>
):(
<>
<Drawer.Screen name = "Student Details" component={StudentDetails} />
<Drawer.Screen name = "Sign Out" component={SignOut} />
</>
)}