Когда я нажимаю кнопку Войти через Google, ничего не происходит - PullRequest
0 голосов
/ 15 марта 2020

Я хотел реализовать аутентификацию Firebase через аутентификацию Google. Таким образом, я использовал этот код:

импорт firebase из 'firebase / app'; импорт «пожарная база / пожарное депо»; import 'firebase / auth';

const config = {
  apiKey: "REDACTED",
  authDomain: "crwn-33842.firebaseapp.com",
  databaseURL: "https://crwn-33842.firebaseio.com",
  projectId: "crwn-33842",
  storageBucket: "crwn-33842.appspot.com",
  messagingSenderId: "479080549871",
  appId: "1:479080549871:web:1b08546056e621651eba1a"
}

firebase.initializeApp(config);

export const auth = firebase.auth();
export const firestore = firebase.firestore();
const provider = new firebase.auth.GoogleAuthProvider();
provider.setCustomParameters({ prompt:'select_account' })
export const signInGoogle = () => auth.signInWithPopup();

export default firebase;   Also have this component code:

import React, { Component } from 'react';
import FormInput from './../form-input.component/form-input.component';
import CustomButton from './../CustomButton/customButton.component';
import { signInGoogle } from './../../firebase/firebase.utils';

class SignIn extends Component {
  state = { 
    login:'',
    password: '',
  }

  handleChange = event =>{
    const {name, value} = event.target;

    this.setState({ [name]: value });
  }

  handleSubmit = event =>{
    event.preventDefault();

    this.setState({ login:'', password:'' })
  }

  render() { 
    return ( 
      <div>
        <form onSubmit={this.handleSubmit}>
          <FormInput
            handleChange={this.handleChange}
            value={this.state.login}
            name='login'
            label='Login'
            required
          />
          <FormInput
            handleChange={this.handleChange}
            value={this.state.password}
            name='password'
            label='Password'
            required
          />
          <CustomButton type='submit' label='Sign In'/>
          <CustomButton onClick={signInGoogle} label='Sign In with Google'/>
        </form>
      </div>
    );
  }
}

export default SignIn;

Итак, когда я нажимаю

<CustomButton onClick={signInGoogle} label='Sign In with Google'/>

, я получаю [! [введите описание изображения здесь] [1]] [1]

[1]: https://i.stack.imgur.com/EeGr7.png

1 Ответ

1 голос
/ 15 марта 2020

Вы не передаете provider в методе auth.signInWithPopup().

Методу signInWithPopup должен понравиться этот метод,

firebase.auth().signInWithPopup(provider);

Изменить вызов линии signInWithPopup со строкой ниже в вашем коде,

export const signInGoogle = () => auth.signInWithPopup(provider);

Для справки, go по этой ссылке

https://firebase.google.com/docs/auth/web/google-signin#handle_the_sign -in_flow_with_the_firebase_sdk

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...