我尝试登录Google,但它向我抛出此错误:
代码:“此环境不支持身份验证/操作”消息:运行此应用程序得环境不支持此操作.“location.protocol”必须为http,https或chrome-extension,并且必须启用Web存储.
这是代码:
const provider = new firebase.auth.GoogleAuthProvider();
provider.addScope('profile');
provider.addScope('email');
firebase.auth().signInWithPopup(provider)
.then((result) => {
console.log(result);
})
.catch((error) => {
console.log(error);
})
其他信息:
- “火线”:“^3.7.1”
- “React Native ”:“^0.42.0”
- 平台:Android
有什么想法吗?提前谢谢!
5条答案
按热度按时间58wvjzkj1#
首先我使用react-native-google-signin登录Google。按照这些steps来配置它。
确保您正确签署APK(调试或发布)。
在
app/build.gradle
中,从使用它的依赖项中排除com.google.android.gms
,如下所示:然后将您的Google令牌与Firebase链接:
我使用的是firebase 3.7.1
这是我的依赖项在
app/build.gradle
中的外观pb3s4cty2#
Firebase Documentation
“有头”身份验证方法(如
signInWithPopup()
、signInWithRedirect()
、linkWithPopup()
和linkWithRedirect()
)在React Native(或Cordova)中不起作用。您仍然可以通过使用signInWithCredential()
和您选择的提供商提供的OAuth令牌登录或链接到联盟提供商。lpwwtiir3#
一般的问题不是关于用解决方案更改代码,而是我们使用
npm link
时解决方案将再次中断,因为npm link
将重新添加新行,从而再次导致错误。npm link
将使用regex进行搜索,当前行是compile(project(":react-native-google-signin")){
,因此我们需要将其更改为compile project ("package")
,并像括号字符一样拆分到下一行。因此当您运行
npm link
时,它将检测依赖关系,并且不会被复制,但if块代码也将被持久化。wfveoks04#
我很晚才回复,但这将有助于其他人,如果你是使用firebase与谷歌标志,那么你必须排除一些库和那些你的应用程序gradle一样
This is discussion about that issue for more detail answer
deyfvvtc5#
我发现所有其他答案不是不正确就是过时。
**react-native-firebase**这是官方推荐的软件包集合,为Android和iOS应用程序上的所有Firebase服务提供React Native支持。
1.请务必遵循
Firebase Authentication
设置说明:https://rnfirebase.io/auth/usage1.使用
google-signin
设置Firebase Authentication
:https://github.com/react-native-google-signin/google-signin