Я не уверен, что основная идея в том, что вы использовали другой токен для манипулирования своей аутентификацией. Я понимаю, что AngularFireAuth имеет свой собственный способ управления токенами и другими частями. Дело в том, что вы объявили переменную user как Observable, поэтому каждый раз, когда вы ее используете, она предполагает встраивание с помощью async. Я могу привести пример, который также работает в моем приложении:
<ul>
<li class="nav-item" *ngIf="user | async">
<a class="nav-link" (click)="onLogout()"> Logout </a>
</li>
<ng-container *ngIf="!(user | async)">
<li class="nav-item">
<a routerLink="/" class="nav-link">Home</a>
</li>
<li class="nav-item">
<a class="nav-link" routerLink="/auth/login"> Login </a>
</li>
<li class="nav-item">
<a class="nav-link" routerLink="/auth/register"> Register </a>
</li>
</ng-container>
</ul>