Регистрация адреса с помощью ИД пользователя - PullRequest
0 голосов
/ 27 октября 2019

Я хочу зарегистрировать адреса с помощью идентификатора пользователя. Мне удается добавить адрес для каждого пользователя. Но моя проблема в том, что у пользователя может быть больше адреса.

Модель

export class Adresse {
    constructor(public prenom: string, 
                public nom: string,
                public adresse: string,
                public commune: string,
                public numeroF: string,
                public numeroL: string){}
}

адрес службы

saveAdresse(){
    firebase.database().ref('adresse/'+ firebase.auth().currentUser.uid).set(this.adresse);
  }

enter image description here

Ответы [ 2 ]

0 голосов
/ 28 октября 2019

Добрый вечер, спасибо. Я могу восстановить с консоли, но я не могу видеть содержимое на странице адреса. У меня есть эта ошибка

введите описание изображения здесь

adresse.page.ts

adresse = {} as Adresse;

  constructor(private router: Router) {}

  ngOnInit(){
    let useradresse = firebase.database().ref('adresse/'+ firebase.auth().currentUser.uid);
    useradresse.once('value').then((snapshot) => {
      snapshot.forEach((addressSnapshot) => {
        console.log (addressSnapshot.val()); // shows the address value 
        this.adresse = addressSnapshot.val();
      })
    })

  }

Страница html

<ion-content>
    <ion-card *ngFor="let adress of adresse; let i = index" (click)="onViewAdresse(i)">
        <ion-card-content>
            <ion-row>
                <ion-col size="9" >
                        <!--<ion-col size="9" (click)="goTo(adress)">-->
                    <div><b>{{adress.prenom}} {{adress.nom}} </b></div>
                    <div>{{adress.commune}}</div>
                    <div>{{adress.numeroF}}</div>

                </ion-col>
                <ion-col size="3">
                    <div class="color-edit"><b>Modifier</b></div>
                </ion-col>
              </ion-row>
          </ion-card-content>
      </ion-card>
0 голосов
/ 27 октября 2019

Если вы хотите добавлять новый адресный дочерний узел под узлом пользователя каждый раз, когда вы вызываете saveAdresse, вам нужно вызывать push вместо set:

saveAdresse(){
  firebase.database().ref('adresse/'+ firebase.auth().currentUser.uid).push(this.adresse);
}

Каждый раз, когда выcall push Firebase генерирует новый дочерний узел с уникальным идентификатором.


Если позже вы захотите показать все адреса для определенного пользователя, вы можете сделать это с помощью:

let userAddresses = firebase.database().ref('adresse/'+ firebase.auth().currentUser.uid);
userAddresses.once('value').then((snapshot) => {
  snapshot.forEach((addressSnapshot) => {
    console.log(addressSnapshot.key); // shows the auto-generated ID for each address
    console.log(addressSnapshot.val()); // shows the address value
  })
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...