0

据我了解,emberfire 身份验证通过 torii 工作,并包括自己的 torii-provider ( torii-providers/firebase.js)。

当我尝试登录时,它运行signInWithPopup来自 firebase 提供程序的方法。location.protocol当应用程序通过cordova(等于)在移动设备上运行时,它不起作用"file:"

我找到了一种解决方法:

  1. 我使用cordova插件通过google授权来获取idToken。

  2. 我已经覆盖了要使用的提供程序signInWithCredential

    export default ToriiFirebaseProvider.extend({
      open(idToken) {
        const firebaseApp = get(this, 'firebaseApp');
        const credentials = get(firebaseApp, 'firebase_.auth.GoogleAuthProvider.credential')(idToken);
        return firebaseApp.auth().signInWithCredential(credentials);
      }
    });
    

它现在有效,但我不确定它是否是正确的解决方案?

4

1 回答 1

0

那么,您想要重定向而不是弹出窗口?如果这是您想要的,只需设置重定向选项:

this.get('session').open('firebase', { provider:'google', redirect: true })
于 2018-01-12T13:57:58.840 回答