据我了解,emberfire 身份验证通过 torii 工作,并包括自己的 torii-provider ( torii-providers/firebase.js
)。
当我尝试登录时,它运行signInWithPopup
来自 firebase 提供程序的方法。location.protocol
当应用程序通过cordova(等于)在移动设备上运行时,它不起作用"file:"
。
我找到了一种解决方法:
我使用cordova插件通过google授权来获取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); } });
它现在有效,但我不确定它是否是正确的解决方案?