我还没有找到任何样品.是否可以将FirebaseUI与AngularFire2 一起使用?UI不是AFAIK,也不是AngularFire2的一部分.
FirebaseUI(用于Web)和AngularFire2之间确实没有直接集成.
AngularFire2内置了登录基元,可与Firebase Authentication JavaScript SDK的低级登录功能集成.有关这些的更多信息,请参阅有关用户身份验证的AngularFire2文档.
但鉴于AngularFire2和FirebaseUI-Web都是基于Firebase身份验证JavaScript SDK构建的,它们可能也可以很好地协同工作.如果您从FirebaseUI启动登录流程,它最终会触发onAuthStateChanged()
SDK级别的事件.这与AngularFire2侦听以触发其自身onAuth()
事件的事件相同.
是的,AngularFire和FirebaseUI可以协同工作.你需要:
1:导入FirebaseUI并授予其访问firebase的权限(例如在bootstrap之前)
import * as firebase from 'firebase/app'
// Attach firebase to window so FirebaseUI can access it
(window).firebase = firebase
// Import FirebaseUI standalone (as its npm.js file causes double firebase code)
import 'firebaseui/dist/firebaseui' // Imports for side effects only
// Declare `window.firebaseui` that the above import creates
declare global {
const firebaseui
}
为什么你不能import * as firebaseui
像firebase一样
2:在服务中初始化FirebaseUI(以便它只发生一次),并将其传递给AngularFire创建的auth实例.
constructor(private af_auth: AngularFireAuth){
this.fui_auth = new firebaseui.auth.AuthUI(this.af_auth.auth)
}
3:在组件中渲染UI
@Component({
'selector': 'app-signin',
'template': '', // Populated by `fui_auth.start()`
})
export class SigninComp {
constructor(private user: UserService){}
ngOnInit(){
// Show Firebase UI auth widget
this.user.fui_auth.start('app-signin', {config...}})
}
}
还有一个模块可用,但它目前遇到了这个问题