How do you insert a “reference” value into firestore?

后端 未结 5 1246
无人及你
无人及你 2020-12-24 01:50

I\'m trying to insert a document into a collection. I want the document to have a attribute of type reference to insert into the collection. But every time I in

5条回答
  •  一整个雨季
    2020-12-24 02:26

    This is the model class to store in firestore.

    import { AngularFirestore, DocumentReference } from '@angular/fire/firestore';
    
    export class FlightLeg {
      date: string;
      type: string;
    
      fromRef: DocumentReference; // AYT Airport object's KEY in Firestore
      toRef: DocumentReference;   // IST  {key:"IST", name:"Istanbul Ataturk Airport" }
    }
    

    I need to store FlightLeg object with reference value. In order to do this:

    export class FlightRequestComponent {
    
      constructor(private srvc:FlightReqService, private db: AngularFirestore) { }
    
      addFlightLeg() {
        const flightLeg = {
          date: this.flightDate.toLocaleString(),
          type: this.flightRevenue,
          fromRef: this.db.doc('/IATACodeList/' + this.flightFrom).ref,
          toRef: this.db.doc('/IATACodeList/' + this.flightTo).ref,
        } as FlightLeg
        .
        ..
        this.srvc.saveRequest(flightLeg);
      }
    

    The service which can save the object with referenced to another object into firestore:

    export class FlightReqService {
       .
       ..
       ...
      saveRequest(request: FlightRequest) {
        this.db.collection(this.collRequest)
               .add(req).then(ref => {
                  console.log("Saved object: ", ref)
               })
       .
       ..
       ...
      }
    }
    

提交回复
热议问题