У меня есть приложение, в котором используются Angular 10.0.3
, AngularFire 6.0.2
и Firebase 7.16
. Мой код для регистрации нового пользователя определенно работал, но я только заметил, что этого больше нет, несмотря на отсутствие изменений в коде. Я недавно обновился до AngularFire 6
и Angular 10
, поэтому подозреваю, что это как-то связано с этим. Страница зависает, и я не получаю сообщений об ошибках на вкладке консоли или сети, поэтому я понятия не имею, в чем проблема, кроме того, что кажется, когда я пытаюсь добавить новый документ в существующий companies
коллекция.
Ниже представлена упрощенная версия моего регистрационного кода. У меня есть операторы журнала консоли в методах then
и catch
, но ни один из них не попадает. Я подтвердил, что есть значения как для companyName
, так и companyId
, так что это не проблема передачи undefined
или чего-то еще. Вызывается метод createCompany
, для объекта newCompany
устанавливаются допустимые данные, и они успешно регистрируются в консоли, но как только он попадает в возврат, где пытается создать новый документ Firestore, он зависает, а база данных не работает. обновлено. Мое чутье подсказывает мне, что я использую устаревший код или что-то в этом роде, но не могу понять где.
register.component.ts:
import { AuthService } from '../../services/auth.service';
import { AngularFirestore } from '@angular/fire/firestore';
...
constructor(
private afs: AngularFirestore,
private authService: AuthService,
) {}
async registerUser() {
if (!this.form.valid) {
return;
}
const { companyName } = this.form.value;
const companyId = this.afs.createId();
this.authService
.createCompany(companyId, companyName)
.then(() => { ... })
.catch(() => { ... });
}
auth.service.ts:
import { AngularFirestore } from '@angular/fire/firestore';
...
constructor(
private afs: AngularFirestore,
) {}
createCompany(id: string, name: string) {
const newCompany = { ... };
console.log('id', id);
console.log('newCompany', newCompany);
return this.afs
.collection<Company>('companies')
.doc(id)
.set(newCompany);
}
Я тоже пробовал return this.afs.collection<Company>('companies').add(newCompany);
и получил тот же результат.