Как я могу сохранить или вспомнить на моем сервере firestore данные после перезагрузки страницы по любой причине? В основном в одном из компонентов я делаю запрос на некоторые данные, которые по умолчанию инициализируются в моем компоненте службы входа в систему, скажем:
USER Component
export class UserComponent implements OnInit {
resumeAccount: UserResumeAccount = {
amountInAccount: 0,
allDetails: null,
};
constructor(
private userLogged: LoginService) {}
ngOnInit(): void {
this.resumeAccount.allDetails = this.userLogged.resumeAccount.allDetails;
this.resumeAccount.amountInAccount = this.userLogged.resumeAccount.amountInAccount;
}
}
, затем в службе я развертываю logi c о показе или нет эта информация, зарегистрированная пользователем, когда-то регистрируется при доступе к данным firebase / firestoree. Как только пользователь входит в данные, данные отображаются правильно, но если по какой-либо причине страница перезагружается, все данные теряются, несмотря на то, что пользователь активен в соответствии с методом getUserState ( ):
LoginService component
@Injectable()
export class LoginService {
//variables
userdata: UserDataModel = {
uid: '',
restData: '',
};
userResumeAccount: UserResumeAccount = {
amountInAccount: 0,
allDetails: null,
};
totalAmount: number = 0;
resumeAccount: UserResumeAccount = {
amountInAccount: 0,
allDetails: null,
};
//constructor
constructor(
private userLogin: AngularFireAuth,
private docCreator: AngularFirestore,
private router: Router
) {}
ngOnInit():void {
this.userLogin.setPersistence(auth.Auth.Persistence.SESSION);
}
//methods
async logInUser(SignUpData: LoginData) {
let { emailUser, passwordUser } = SignUpData;
await this.userLogin.setPersistence(auth.Auth.Persistence.SESSION);
let responseOk = await this.userLogin.signInWithEmailAndPassword(emailUser,passwordUser);
this.userdata.uid = await responseOk.user.uid;
this.userdata.restData = await responseOk.user;
let pathUserName = await this.docCreator==>path to the document inside the firestore
.collection('users')
.doc(this.userdata.uid);
await pathUserName========>getting the firestore data and asigning it to variables
.get()
.toPromise()
.then(async (result) => {
if (result.exists) {
this.resumeAccount.allDetails = await result.get('userName');
this.resumeAccount.amountInAccount = await this.totalAmount;
} else return console.log('not Document Found');
})
.then(() => {})
.catch((err) => {
console.log('Error getting document:', err);
});
}
getUserState() {
return this.userLogin.authState.pipe(map((userLoged) =>{return (console.log(userLoged),
userLoged)}));
}===>ON RELOAD THIS METHOD STILL SHOWS USER ACTIVE
}
Таким образом, в основном в этом предыдущем разделе внутри метода, который запускает процесс входа в систему, я получаю доступ к данным, хранящимся в firestore; также в методах ngOnInit я устанавливаю sh метод сохранения для раздела, претендующего на сохранение данных, достигнутых после перезагрузки страницы, но это неправильно!, а также его инициализацию в начале метода loginUser. Как я могу решить эту проблему. Заранее спасибо