Ionic framework 设备上的离子Firebase身份验证
我希望使用Firebase身份验证。我正在使用,在浏览器中一切正常。然而,社交媒体登录在设备上不起作用。当我点击“谷歌登录”时,设备浏览器会出现,然后。。。什么也没发生 所以我的问题是:有没有什么工作方法可以让Firebase在使用Ionic的设备上进行身份验证?我不熟悉。它似乎是为了支持基于web的应用而构建的。爱奥尼亚需要Cordova插件来实现Facebook和谷歌登录功能。这些插件可以与Firebase身份验证一起使用 我有一个使用Firebase进行身份验证的回购协议。它没有内置Facebook或Google登录,但它确实提供了一种工作方法,可以让Firebase身份验证在使用Ionic的设备上工作 如果你决定克隆我的项目。。。按照Firebase web设置的步骤1和步骤2进行操作。然后按照说明复制web应用程序的配置对象,并将其粘贴到src\environments\environment.ts中(替换现有的Firebase配置对象) 一旦你有了Firebase email auth设置,你可以按照教程设置Facebook应用程序,并使用Cordova插件在你的Ionic应用程序中注册 一旦Facebook插件设置正确,您就可以使用它登录Firebase。您的代码类似于下面的代码示例(注意:这不是整个AuthenticationService类,只是Facebook特定的代码):Ionic framework 设备上的离子Firebase身份验证,ionic-framework,firebase-authentication,ionic4,device,Ionic Framework,Firebase Authentication,Ionic4,Device,我希望使用Firebase身份验证。我正在使用,在浏览器中一切正常。然而,社交媒体登录在设备上不起作用。当我点击“谷歌登录”时,设备浏览器会出现,然后。。。什么也没发生 所以我的问题是:有没有什么工作方法可以让Firebase在使用Ionic的设备上进行身份验证?我不熟悉。它似乎是为了支持基于web的应用而构建的。爱奥尼亚需要Cordova插件来实现Facebook和谷歌登录功能。这些插件可以与Firebase身份验证一起使用 我有一个使用Firebase进行身份验证的回购协议。它没有内置Fac
希望它有帮助这里是Firebase的指南:但是,在我的情况下,它不起作用,因为cordova universal links插件已被弃用,并且存在一个bug,因此我可以在那时构建我的项目。以下是来自爱奥尼亚本身的指南:但它似乎不适用于浏览器,而且设置起来似乎更困难,因为您需要idToken和accessToken用于Google auth。
export const environment = {
production: false,
firebaseConfig: {
apiKey: "AXXXXXBILN60aW-XXXXXXXXIZWeHkMDUVT-AQ7Y",
authDomain: "fir-auth-test-XXXXX.firebaseapp.com",
databaseURL: "https://fir-auth-test-XXXXX.firebaseio.com",
projectId: "fir-auth-test-XXXXX",
storageBucket: "fir-auth-test-XXXXX.appspot.com",
messagingSenderId: "106XXXXXXX396",
appId: "1:106XXXX87396:web:d384fXXXXXXXXd647bed31",
measurementId: "G-XNXXXXXXB0"
}
import { AngularFireAuth } from "@angular/fire/auth";
import { AngularFireDatabase, AngularFireObject } from "@angular/fire/database";
import * as firebase from "firebase/app";
import { Facebook, FacebookLoginResponse } from "@ionic-native/facebook/ngx";
@Injectable({
providedIn: "root"
})
export class AuthenticationService {
constructor(private afAuth: AngularFireAuth, private facebook: Facebook) {}
loginWithFacebook(): void {
this.facebook
.login(["public_profile", "email"])
.then(
(res: FacebookLoginResponse) => {
const facebookCredential_1 = firebase.auth.FacebookAuthProvider.credential(
res.authResponse.accessToken
);
this.loginWithFirebase(facebookCredential_1).then(
console.log('success');
);
},
error => {
console.log( JSON.stringify(error));
}
)
.catch(error_1 => {
console.log("Error ", error_1);
});
}
async loginWithFirebase(credential: firebase.auth.AuthCredential) {
return firebase.auth()
.signInAndRetrieveDataWithCredential(credential)
.then(response => {
return response;
})
.catch(error => {
console.log(JSON.stringify(error));
});
}