Здравствуйте, я сижу здесь с проектом, я не могу найти ошибку или что я делаю неправильно.
Я использую angular 6 и firebase / firestore
Моя проблема, когда я хочу создатьпользователь с электронной почтой и паролем, он работает нормально, но затем я добавил дополнительные поля, такие как имя, фамилия и т. д.
Auth.service.ts
Мой сервис аутентификации имеет интерфейс и функции to, показанные ниже здесь.я проверил создание пользователя только с электронной почтой и паролем, и это работало нормально.
в моей базе данных я активировал аутентификацию с помощью электронной почты / пароля и создал коллекцию пользователей с пользователями документа и добавил все поля firstName,lastName и т. д.
interface User {
uid: string;
email?: string;
photoURL?: string;
displayName?: string;
firstName?: string;
lastName?: string;
address?: string;
zipCode?: string;
city?: string;
phoneNumber?: string;
}
emailSignUp(email: string, password: string) {
return this.afAuth.auth
.createUserWithEmailAndPassword(email, password)
.then(credential => {
this.notify.update('Welcome new user!', 'success');
return this.updateUserData(credential.user); // if using firestore
})
.catch(error => this.handleError(error));
}
private updateUserData(user) {
// Sets user data to firestore on login
const userRef: AngularFirestoreDocument<any> =
this.afs.doc(`users/${user.uid}`);
const data: User = {
uid: user.uid,
email: user.email,
displayName: user.displayName,
photoURL: user.photoURL,
firstName: user.firstName,
lastName: user.lastName,
address: user.address,
zipCode: user.zipCode,
city: user.city,
phoneNumber: user.phoneNumber
}
return userRef.set(data, { merge: true })
}
User-form.component.html
Это мой компонент, где у меня есть форма для создания нового пользователя.
<form [formGroup]="userForm" *ngIf="newUser" (ngSubmit)="signup()">
<h1>Log ind / Opret ny profil</h1>
<br>
<h3>Har du allerede en bruger så tryk på log ind</h3>
<p class="btn btn-primary" (click)="toggleForm()">Log ind</p>
<h3>Opret ny profil</h3>
<!--<p class="button is-small" (click)="toggleForm()">Already Registered?
</p>-->
<hr>
<label for="firstName">Fornavn</label>
<input type="text" class="input" formControlName="firstName"
name="firstName" required >
<label for="lastName">Efternavn</label>
<input type="text" class="input" formControlName="lastName" name="lastName"
required>
<label for="telefonnummer">Telefonnummer</label>
<input type="tel" class="input" formControlName="phoneNumber"
name="telefonnummer" required>
<label for="adresse">Adresse</label>
<input type="text" class="input" formControlName="address" name="adresse"
required>
<label for="postnummer">Postnummer</label>
<input type="number" class="input" formControlName="zipCode"
name="postnummer" required>
<label for="by">By</label>
<input type="text" class="input" formControlName="city" name="by" required>
<label for="email">Email</label>
<input type="email" class="input" formControlName="email" name="email"
required autocomplete="new-password">
<div *ngIf="formErrors.email" class="notification is-danger">
{{ formErrors.email }}
</div>
<label for="password">Password</label>
<input type="password" class="input" formControlName="password"
name="password" required>
<div *ngIf="formErrors.password" class="notification is-danger">
{{ formErrors.password }}
</div>
<!--
<label>
<input type="checkbox" class="checkbox" required>Service & Betingelser
</label>
-->
<div *ngIf="userForm.valid" class="notification is-success">Form is
valid</div>
<button type="submit" class="btn btn-primary"
[disabled]="!userForm.valid">Opret Profil</button>
</form>