我正在开发一个使用 AngularFire 的 Ionic 项目。应用程序有两个主要特点。
- 特点 1. 要求用户创建帐户并登录。
- 特点 2. 不需要帐户或登录。
我正在使用带有“redirectUnauthorizedToLogin”管道的 AngularFireAuthGuard 来控制路由。
const redirectUnauthorizedToLogin = () => redirectUnauthorizedTo(['login']);
{ path: '...', loadChildren: '...', canActivate: [AngularFireAuthGuard], data: { authGuardPipe: redirectUnauthorizedToLogin } },
这两个功能都与 FireStore 交互。由于安全原因,我想实现 Firebase 匿名登录。因此,对于功能 2,我可以控制谁可以写入 db 而无需所有人的许可。同时,功能 1仍然需要一个帐户。
问题来了,因为我找不到向功能 1保护添加两个条件的方法,例如
if (is anonymous || not logged in) redirectToLogin
据我所知,redirectUnauthorizedToLogin 将匿名登录计为授权。
我查看了官方文档,发现有一个“IsNotAnonymous”内置管道,但它只被引用一次,我找不到它的任何其他用法。
我希望有人可以帮助我解决这个问题。
提前致谢,
Ionic:
Ionic CLI : 5.2.1
Ionic Framework : @ionic/angular 4.6.0
@angular-devkit/build-angular : 0.13.9
@angular-devkit/schematics : 7.2.4
@angular/cli : 7.3.9
@ionic/angular-toolkit : 1.4.0
"@angular/fire": "^5.2.1",
"firebase": "^5.11.1",
Cordova:
Cordova CLI : 8.1.2 (cordova-lib@8.1.1)
Cordova Platforms : android 7.1.4
Utility:
cordova-res : 0.6.0
native-run : 0.2.7
System:
Android SDK Tools : 26.1.1 (D:\Sdk)
NodeJS : v11.4.0 (D:\nodejs\node.exe)
npm : 6.4.1
OS : Windows 10