如何删除从Facebook提供商注册的Firebase用户?

问题描述 投票:0回答:1

我有以下代码,用于重新验证用户:

checkAccountPassword(password) {
        if (this.isFirebaseUserLoggedWithFacebook()) {
            return this.afAuth.auth.currentUser.reauthenticateAndRetrieveDataWithCredential(firebase.auth.FacebookAuthProvider.credential(facebookToken - WHERE_CAN_I_FIND_THIS_TOKEN?????));
        }
        return this.afAuth.auth.currentUser.reauthenticateAndRetrieveDataWithCredential(firebase.auth.EmailAuthProvider.credential(firebase.auth().currentUser.email, password));
    }

然后我可以删除用户(因为删除需要最近的身份验证。)>

问题是-我无法获得令牌,我需要重新认证FB用户。

我有可以获取令牌的代码,但以防万一,当用户安装了Facebook应用程序,但是如果用户使用弹出窗口登录Facebook,我不知道我在哪里可以获取facebookToken

 doFacebookLogin() {
        if (this.platform.is('cordova')) {
            return from(this.fb.login(['email', 'public_profile'])).pipe(
                switchMap(response => {
                    this.currentFacebookCredential = firebase.auth.FacebookAuthProvider.credential(response.authResponse.accessToken);
                    return from(firebase.auth().signInAndRetrieveDataWithCredential(this.currentFacebookCredential));
                }),
                switchMap(() => {
                    return this.afAuth.idToken;
                }),
                first(),
            );
        } else {
            const provider = new firebase.auth.FacebookAuthProvider();
            provider.addScope('email');
            provider.addScope('public_profile');
            return from(this.afAuth.auth.signInWithPopup(provider)).pipe(

                switchMap(() => this.afAuth.idToken),
                first(),
            );
        }
    }

我有以下代码,用于重新验证用户:checkAccountPassword(password){如果(this.isFirebaseUserLoggedWithFacebook()){返回this.afAuth.auth.currentUser ....

angular firebase ionic2 firebase-authentication angularfire2
1个回答
0
投票

我找到了一个解决方案,我需要再次调用doLogin(),然后将对象保存到currentFacebookCredential中,以这种方式进行popup-login-case:

© www.soinside.com 2019 - 2024. All rights reserved.