Ионный угловой конденсатор Firebase: вход через Google

Ошибки приложения Ionic Angular Capacitor Firebase

используя @codetrix-studio/capacitor-google-auth, предлагаемый код:

Plugins.GoogleAuth.signIn();

async googleSignIn() {
  let googleUser = await Plugins.GoogleAuth.signIn();
  const credential = auth.GoogleAuthProvider.credential(googleUser.authentication.idToken);
  return this.afAuth.auth.signInAndRetrieveDataWithCredential(credential);
}

Сообщение об ошибке: свойство «auth» не существует для типа AngularFireAuth Я могу заставить его работать с регистрацией по электронной почте, но не с Google. спасибо за любые идеи!

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
1
0
1 516
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Кажется, это работает:

В auth.service.ts: Импорт

    import { AngularFireAuth } from @angular/fire/auth';
    import '@codetrix-studio/capacitor-google-auth';
    import { Plugins } from '@capacitor/core';
    import 'firebase/auth';
    import firebase from 'firebase/app';

GoogleВход:

    async googleSignIn() {
    const googleUser = await 
    Plugins.GoogleAuth.signIn();
    const credential = firebase.auth.GoogleAuthProvider.credential(googleUser.authentication.idToken);
    return this.afAuth.signInAndRetrieveDataWithCredential(credential);   
 }

Вы также можете импортировать «auth» следующим образом: import { auth } from «firebase/app»; тогда вы можете использовать: исходный код: const credential = auth.GoogleAuthProvider.credential(googleUser.authentication‌​.idToken);

tomN 02.01.2021 10:45

Оно работает! Просто измените signInAndRetrieveDataWithCredential() на signInWithCredential(), потому что первый устарел.

Masciuniria 22.03.2021 02:37

Вам нужно импортировать некоторые библиотеки, чтобы его можно было распознать. Убедитесь, что вы установили все необходимые библиотеки firebase для angular, такие как angularfire и firebase.

У меня этот код работает.

//first import AngularFireAuth

import {AngularFireAuth} from "@angular/fire/auth"

//then import firebase

import firebase from 'firebase/app';

//define auth variable of AngularFireAuth in constructor

constructor(private auth: AngularFireAuth) {}

async googleSignIn() {

 let googleUser = await Plugins.GoogleAuth.signIn();

  //use imported firebase to get user credential from google

  const credential = firebase.auth.GoogleAuthProvider.credential(googleUser.authentication.idToken);


  //Then use auth variable of AngularFireAuth to sign user using firebase authentication

  return this.auth.signInWithCredential(credential);

  //If you want to get user signed user details you can do this 

   return this.auth.signInWithCredential(credential).then((userCredential: firebase.auth.UserCredential)=>{

   //userCredential object contains all details of the signed user.

   console.info(userCredential)
});


}

Другие вопросы по теме