Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.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
react native中的Firebase无密码身份验证未按预期工作_Firebase_React Native_Firebase Authentication - Fatal编程技术网

react native中的Firebase无密码身份验证未按预期工作

react native中的Firebase无密码身份验证未按预期工作,firebase,react-native,firebase-authentication,Firebase,React Native,Firebase Authentication,在我点击电子邮件中收到的登录(动态链接)之前,一切正常 单击该链接时,会打开同一应用程序的另一个实例/窗口,在该窗口中,由于用户输入的电子邮件未持续存在,因此登录/注册将不起作用 截图附于下面: 这是我的代码: App.js 从“React”导入React,{Component}; 从“react native”导入{View,TextInput,Button}; 从“@react native firebase/dynamic links”导入dynamicLinks; 从'@react

在我点击电子邮件中收到的登录(动态链接)之前,一切正常

单击该链接时,会打开同一应用程序的另一个实例/窗口,在该窗口中,由于用户输入的电子邮件未持续存在,因此登录/注册将不起作用

截图附于下面:

这是我的代码:

App.js


从“React”导入React,{Component};
从“react native”导入{View,TextInput,Button};
从“@react native firebase/dynamic links”导入dynamicLinks;
从'@react native firebase/auth'导入身份验证;
从“@react native community/async storage”导入异步存储;
类应用程序扩展组件{
建造师(道具){
超级(道具);
此.state={
电子邮件:“”,
};
}
setEmail=异步电子邮件=>{
试一试{
等待AsyncStorage.setItem('emailLink',`${email}`);
}捕获(e){
//保存错误
}
console.log(“设置了电子邮件”);
};
sendEmailLink(){
var actionCodeSettings={
//要重定向到以完成登录的URL。这也是
//移动重定向的链接。此URL的域(www.example.com)
//必须在Firebase控制台中列入白名单。
网址:'https://passless.page.link/85EH',
iOS:{
bundleId:'org.reactjs.native.example.passless',
},
安卓:{
packageName:'com.passless_auth',
installApp:true,
最低版本:“12”,
},
//这一定是真的。
handleCodeInApp:没错,
};
auth()
.sendSignInLinkToEmail(`this.state.email}`,actionCodeSettings)
。然后(()=>console.log('email已发送'))
.then(()=>this.setEmail(`${this.state.email}`)
.catch(err=>console.log('error sending email',err');
}
initialLink=dynamicLinks()
.getInitialLink()
。然后(link=>{
log(link.url);
if(auth().isSignInWithEmailLink(link.url)){
log('link is true');
auth()
.signInWithEmailLink('yashatreya。ya@gmail.com,link.url)
.catch(错误=>{
log('EROR:',err);
});
}否则{
log('linkisfalse');
}
})
.catch(err=>console.log('linkerror:',err));
render(){
返回(
this.setState({email:email})}
/>
this.sendmaillink()}/>
);
}
}
导出默认应用程序;
app/build.gradle

apply插件:“com.android.application”
导入com.android.build.OutputFile
/**
*react.gradle文件为每个构建变量(例如bundleDebugJsAndAssets)注册一个任务
*和捆绑式蔬菜)。
*这些基本上是在Android构建期间使用正确的参数调用“react native bundle”
*循环。默认情况下,将跳过BundledBugJSandAssets,因为在调试/开发模式下,我们更喜欢加载
*直接从开发服务器绑定。下面您可以看到所有可能的配置
*以及他们的违约。如果决定添加配置块,请确保在
*`apply from:“../../node_modules/react native/react.gradle”`行。
*
*project.ext.react=[
*//生成的包含JS包的资产文件的名称
*bundleAssetName:“index.android.bundle”,
*
*//用于生成捆绑包的条目文件
*entryFile:“index.android.js”,
*
*   // https://facebook.github.io/react-native/docs/performance#enable-ram格式
*bundleCommand:“ram bundle”,
*
*//是否在调试模式下捆绑JS和资产
*bundleInDebug:错误,
*
*//是否在发布模式下捆绑JS和资产
*bundleInRelease:对,
*
*//是否将JS和资产捆绑到另一个构建变量中(如果已配置)。
*//见http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-构建变体
*//配置属性可以采用以下格式
*//'bundleIn${productFlavor}${buildType}'
*//“bundleIn${buildType}”
*//bundleInFreeDebug:true,
*//bundleInPaidRelease:true,
*//bundleInBeta:是的,
*
*//是否在自定义生成变体中禁用开发模式(默认情况下,仅在版本中禁用)
*//例如:在临时生成类型中禁用开发模式(如果已配置)
*devDisabledInStaging:没错,
*//配置属性可以采用以下格式
*//'devDisabledIn${productFlavor}${buildType}'
*//“devDisabledIn${buildType}”
*
*//项目的根,即“package.json”所在的位置
*根:“../”,
*
*//将JS捆绑包资产置于调试模式的位置
*JSBundleRDebug:“$buildDir/intermediates/assets/debug”,
*
*//将JS捆绑资产置于发布模式的位置
*JSBundledRelease:“$buildDir/中间产品/资产/发布”,
*
*//在何处放置可提取资源/反应本机资产,例如通过
*//调试模式下需要('./image.png')
*resourcesDirDebug:“$buildDir/intermediates/res/merged/debug”,
*
*//在何处放置可提取资源/反应本机资产,例如通过
*//在发布模式下需要('./image.png')
*ResourcesDisrelease:“$buildDir/intermediates/res/merged/release”,
*
*//默认情况下,如果没有任何JS文件或资产发生更改,则跳过gradle任务;这意味着
*//我们不查看android/或ios/中的文件来确定任务是否达到
*//日期;如果您有出于性能原因而要忽略的任何其他文件夹(gradle
*//索引整个树),将它们添加到此处。或者,如果android中有JS文件/
*//例如,您可能希望将其从此处删除。
*inputExcludes:[“android/**”、“ios/**”],
*
*//重写调用哪个节点以及使用哪些附加参数
*nodeExecutableAndArgs:[“节点”],
*
*//向打包程序提供其他参数
*