据我了解,emberfire auth通过torii工作,并包含自己的torii-provider(torii-providers/firebase.js
)。
当我尝试登录时,它会从firebase提供程序运行signInWithPopup
方法。当应用程序通过cordova在移动设备上运行时,它不起作用(location.protocol
等于"file:"
)。
我找到了解决方法:
我使用cordova插件通过谷歌授权获取idToken。
我已覆盖提供商以使用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);
}
});
现在有效,但我不确定这是正确的解决方案吗?
答案 0 :(得分:0)
那么,你想要一个重定向而不是一个弹出窗口? 如果这是你想要的,只需设置重定向选项:
this.get('session').open('firebase', { provider:'google', redirect: true })