Firebase 错误:未进行身份验证/配置。发生内部错误

Firebase 错误:未进行身份验证/配置。发生内部错误,firebase,react-native,react-native-android,Firebase,React Native,React Native Android,你知道为什么我在React Native和Firebase中单击“通过电子邮件和密码注册”时会遇到这个问题吗 [Error: [auth/configuration-not] An internal error has occurred. [ CONFIGURATION_NOT_FOUND ]] 我的App.js文件 import React,{useEffect,useState} from 'react'; import 'react-native-gesture-handler'; i

你知道为什么我在React Native和Firebase中单击“通过电子邮件和密码注册”时会遇到这个问题吗

[Error: [auth/configuration-not] An internal error has occurred. [ CONFIGURATION_NOT_FOUND ]]
我的App.js文件


import React,{useEffect,useState} from 'react';
import 'react-native-gesture-handler';
import {
  StatusBar,
  View,
  Text
} from 'react-native';

import {Provider} from 'react-redux';
import {store} from './redux/store';


import Home from './screens/Home';
import Cart from './screens/Cart';
import CartDone from './screens/CartDone';
import Login from './screens/Login';
import Register from './screens/Register';
import {NavigationContainer} from '@react-navigation/native';
import {createDrawerNavigator,DrawerContentScrollView,DrawerItem} from '@react-navigation/drawer';
import Product from './screens/Product';
import {Avatar,Drawer} from 'react-native-paper';
import auth from '@react-native-firebase/auth';

const DrawerNav = createDrawerNavigator();


const App=() => {

 // Set an initializing state whilst Firebase connects
 const [initializing, setInitializing] = useState(true);
 const [user, setUser] = useState();

 // Handle user state changes
 function onAuthStateChanged(user) {
   setUser(user);
   if (initializing) setInitializing(false);
 }

 useEffect(() => {
   const subscriber = auth().onAuthStateChanged(onAuthStateChanged);
   return subscriber; // unsubscribe on unmount
 }, []);

if (initializing) return null;


if(!user){
  return(
    <Provider store={store}>
      <StatusBar barStyle="white" backgroundColor="red" />
      <NavigationContainer>
      <DrawerNav.Navigator InitialRoute="Login" drawerContent={(props)=><DrawerContent {...props}/>}>
          <DrawerNav.Screen name="Login" component={Login} />
          <DrawerNav.Screen name="Register" component={Register} />
        </DrawerNav.Navigator>
      </NavigationContainer>
    </Provider>
  );
}

  return (
    <Provider store={store}>
      <StatusBar barStyle="white" backgroundColor="red" />
      <NavigationContainer>
      <DrawerNav.Navigator InitialRoute="Home" drawerContent={(props)=><DrawerContent {...props}/>}>
          <DrawerNav.Screen name="Home" component={Home} />
          <DrawerNav.Screen name="Cart" component={Cart} />
          <DrawerNav.Screen name="CartDone" component={CartDone} />
          <DrawerNav.Screen name="Product" component={Product} />
        </DrawerNav.Navigator>
      </NavigationContainer>
    </Provider>
  );
};



function DrawerContent(props){

return(
  <DrawerContentScrollView {...props}>
  <View style={{flex:1,alignItems:"center"}}>
    <Avatar.Image style={{backgroundColor:'white'}} size={130} source={require('./assets/avatar.png')}/>
  </View>
  <Drawer.Section>
  <DrawerItem 
         label="Home"
         icon={()=>(
          <Avatar.Icon backgroundColor="white" color="black" size={30} icon="home"/>
          )}
        onPress={()=>props.navigation.navigate('Home')}
    />
    <DrawerItem 
         label="Cart"
         icon={()=>(
          <Avatar.Icon backgroundColor="white" color="black" size={30} icon="cart"/>
          )}
        onPress={()=>props.navigation.navigate('Cart')}
    />
    <DrawerItem 
         label="Login"
         icon={()=>(
          <Avatar.Icon backgroundColor="white" color="black" size={30} icon="account"/>
          )}
        onPress={()=>props.navigation.navigate('Login')}
    />
  </Drawer.Section>
</DrawerContentScrollView>
  );
}

export default App;

从“React”导入React,{useffect,useState};
导入“反应本机手势处理程序”;
进口{
状态栏,
看法
正文
}从“反应本机”;
从'react redux'导入{Provider};
从“./redux/store”导入{store};
从“/screens/Home”导入主页;
从“/screens/Cart”导入购物车;
从“/screens/CartDone”导入CartDone;
从“/screens/Login”导入登录名;
从“./screens/Register”导入寄存器;
从'@react-navigation/native'导入{NavigationContainer};
从'@react navigation/drawer'导入{createDrawerNavigator,DrawerContentScrollView,DrawerItem};
从“./屏幕/产品”导入产品;
从“react National paper”导入{Avatar,Drawer};
从'@react native firebase/auth'导入身份验证;
const paurernav=createpaurernavigator();
常量应用=()=>{
//在Firebase连接时设置初始化状态
const[initializing,setInitializing]=useState(true);
const[user,setUser]=useState();
//处理用户状态更改
函数onAuthStateChanged(用户){
setUser(用户);
if(初始化)setInitializing(false);
}
useffect(()=>{
const subscriber=auth().onAuthStateChanged(onAuthStateChanged);
返回订阅服务器;//卸载时取消订阅
}, []);
如果(初始化)返回null;
如果(!用户){
返回(
}>
);
}
返回(
}>
);
};
功能抽屉内容(道具){
返回(
(
)}
onPress={()=>props.navigation.navigate('Home')}
/>
(
)}
onPress={()=>props.navigation.navigate('Cart')}
/>
(
)}
onPress={()=>props.navigation.navigate('Login')}
/>
);
}
导出默认应用程序;
my Register.js文件:

import React,{useState} from 'react'
import {View,StyleSheet,TouchableOpacity,TextInput} from 'react-native';
import Header from '../components/header';
import {Item,Input,Icon,Label,CheckBox,ListItem,Body,Text} from "native-base";
//react-native-hide-show-password-input
//import auth from '@react-native-firebase/auth';
import { ScrollView } from 'react-native-gesture-handler';
import firestore from '@react-native-firebase/firestore';

export default Register = ({navigation})=>{
    return (
       <Header screen="Register" component={Main} navigation={navigation} />
    )
}

const Main=(props)=>{

const [email,setemail]=useState('');
const [password,setpassword]=useState('');
const [firstName,setfirstName]=useState('');
const [lastName,setLastName]=useState('');
const [secureText,setSecureText]=useState(true);
const [isChecked,setisChecked]=useState(false);


 function CreateUser(){

 if(email!="" && email!=null && password!="" && password!=null && isChecked==true ){
     auth()
     .createUserWithEmailAndPassword(email,password)
     .then(() => {
      console.log('User account created & signed in!');
    })
    .catch(error => {
      if (error.code === 'auth/email-already-in-use') {
        console.log('That email address is already in use!');
       }
  
       if (error.code === 'auth/invalid-email') {
        console.log('That email address is invalid!');
       }
  
      console.log("last one",error);
    });
 }

// adding user to firestore
/*firestore()
  .collection('Users')
  .add({
    name: firstName+" "+lastName,
    email : email,
    password : password,
  })
  .then(() => {
    console.log('User added!');
  })
  .catch(err=>console.log(err)); */

 }


    return (
        <ScrollView>
        <View style={styles.Container}>
             <View style={styles.form}>

             <Item rounded style={styles.inputstyle}>
                <Input
                 placeholder="First Name"
                 value={firstName}
                 onChangeText={text =>setfirstName(text)}
                 underlineColor="transparent"
                />

                </Item>
                <Item rounded style={styles.inputstyle}>
                <Input
                 placeholder="Last Name"
                 value={lastName}
                 onChangeText={text =>setLastName(text)}
                 underlineColor="transparent"
                />

                </Item>
                <Item rounded style={styles.inputstyle}>
                <Input
                 placeholder="Email"
                 value={email}
                 onChangeText={text =>setemail(text)}
                 underlineColor="transparent"
                />
                </Item>

                 <Item rounded style={styles.inputstyle}>
                  <Input secureTextEntry={secureText} onChangeText={(text)=>setpassword(text)} placeholder='password'/>
                  <Icon active onPress={()=>setSecureText(secureText==true ? false : true)} name={secureText==true ? "eye-off" : "eye"} />
                 </Item>

                 <View style={styles.termscheckboxContainer}>
                 <ListItem>
                  <CheckBox onPress={()=>setisChecked(isChecked==false ? true : false)} checked={isChecked} />
                  <Text style={{ marginLeft:10 }}>Accept the terms and conditions</Text>
                </ListItem>
                 </View>
              

                <TouchableOpacity 
                 onPress={()=>CreateUser()}
                style={styles.submit}>
                    <Text style={styles.submittxt}>Sign up</Text>
                </TouchableOpacity>

               
                <View style={styles.divid}>
                    <View style={styles.line} />
                    <Text style={styles.or}>or</Text>
                    <View style={styles.line} />
                </View>

               <View style={styles.secondpanel}>
               <TouchableOpacity style={styles.facebook}>
                    <Text style={styles.txtsignwith}>Sign In with Facebook</Text>
                </TouchableOpacity>

                <TouchableOpacity style={styles.google}>
                    <Text style={styles.txtsignwith}>Sign In with Google</Text>
                </TouchableOpacity>

               <View style={styles.signupqs}>
               <Text style={styles.signupqstxtA}>Already have an account?</Text>
                <TouchableOpacity 
                onPress={()=>props.navigation.navigate('Login')}
                style={styles.signupqsbtn}>
                  <Text style={styles.signupqstxtB}>Sign In</Text>
                </TouchableOpacity>
               </View>
               </View>
             </View>
        </View>
        </ScrollView>
    )
}
import React,{useState}来自“React”
从“react native”导入{View,StyleSheet,TouchableOpacity,TextInput};
从“../components/Header”导入标题;
从“本机库”导入{Item,Input,Icon,Label,CheckBox,ListItem,Body,Text};
//反应本机隐藏显示密码输入
//从'@react native firebase/auth'导入身份验证;
从“反应本机手势处理程序”导入{ScrollView};
从“@react native firebase/firestore”导入firestore;
导出默认寄存器=({navigation})=>{
返回(
)
}
常量Main=(道具)=>{
const[email,setemail]=useState(“”);
const[password,setpassword]=useState(“”);
const[firstName,setfirstName]=useState(“”);
const[lastName,setLastName]=useState(“”);
const[secureText,setSecureText]=useState(true);
const[isChecked,setisChecked]=useState(false);
函数CreateUser(){
if(email!=“”&&email!=null&&password!=“”&&password!=null&&isChecked==true){
auth()
.createUserWithEmailAndPassword(电子邮件,密码)
.然后(()=>{
log('User account created&signed in!');
})
.catch(错误=>{
如果(error.code==='auth/email已在使用'){
log('该电子邮件地址已在使用!');
}
如果(error.code==='auth/invalid email'){
log('该电子邮件地址无效!');
}
日志(“最后一个”,错误);
});
}
//将用户添加到firestore
/*firestore()
.collection('用户')
.添加({
姓名:firstName+“”+lastName,
电邮:电邮,,
密码:密码,
})
.然后(()=>{
log('User added!');
})
.catch(err=>console.log(err))*/
}
返回(
setfirstName(文本)}
underlineColor=“透明”
/>
setLastName(文本)}
underlineColor=“透明”
/>
setemail(文本)}
underlineColor=“透明”
/>
setpassword(text)}占位符='password'/>
setSecureText(secureText==true?false:true)}name={secureText==true?“眼睛离开”:“眼睛”}/>
setisChecked(isChecked==false?true:false)}checked={isChecked}/>
接受条款和条件
CreateUser()}
style={style.submit}>
注册
或
使用Facebook登录
使用谷歌登录
已经有账户了吗?
props.navigation.navigate('Login')}
style={style.signupqsbtn}>
登录
)
}
我已遵循React Native Firebase文档中的所有说明。 验证函数登录验证工作。 我还启用了firebase的电子邮件和密码服务


谢谢。

您是否检查过Android应用程序google-services.json文件中的项目id与启用google登录身份验证的Firebase项目相同?如果是这种情况,并且您没有编辑google-services.json文件,您可以向Firebase提交一份支持票证。

您是否检查了Android应用程序google-services.json文件中的项目id与启用google登录身份验证的Firebase项目相同?如果是这种情况,并且您尚未编辑google-services.json文件,则可以向Fi提交支持票证