Я работаю над проектом Ionic, который использует AngularFire. Приложение имеет две основные функции.
- Функция 1. Требуется, чтобы пользователи создали учетную запись и логин.
- Функция 2. Не требует учетной записи или входа в систему.
IЯ использую AngularFireAuthGuard с каналом "redirectUnauthorizedToLogin" для управления маршрутизацией.
const redirectUnauthorizedToLogin = () => redirectUnauthorizedTo(['login']);
{ path: '...', loadChildren: '...', canActivate: [AngularFireAuthGuard], data: { authGuardPipe: redirectUnauthorizedToLogin } },
Обе функции взаимодействуют с FireStore. Из соображений безопасности я хочу внедрить анонимный вход в Firebase. Итак, для функции 2 я могу контролировать, кто может писать в БД, не давая разрешения всем. Между тем функция 1 по-прежнему требует учетной записи.
Здесь возникает проблема, потому что я не смог найти способ добавить два условия к функции 1 охранять что-то вроде
if (is anonymous || not logged in) redirectToLogin
Насколько я вижу, redirectUnauthorizedToLogin считает анонимный вход авторизованным.
Я проверил официальные документы и вижу, что есть встроенный канал IsNotAnonymous, но он упоминается только один раз, и я не смог найти другое его использование.
Iнадеюсь, кто-нибудь может помочь мне в этом.
Заранее спасибо,
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