2017-10-17 8 views
0

J'ai été bloqué sur ce problème pendant un certain temps, ce que je veux faire est: Lorsque je crée un formulaire, écrire le formulaire dans la base de données avec une liste d'utilisateurs, avec leur adresses e-mail - comme ceci:Insérer un objet imbriqué dans Firebase

formsById -> formId -> userId (contient les utilisateurs d'adresse e-mail)

Je puis filtrer toutes les formes par l'utilisateur actuel comme celui-ci:

getFormList() { 
    return firebase.database().ref('/formsByID').orderByChild('userList').startAt(this.userId).endAt(this.userId); 
    } 

Voici comment j'écris actuellement dans la base de données:

writeNewForm(formName: string, formDate: string): Promise<any> { 

    // A post entry. 
    let postData = { 
     name: formName, 
     date: formDate, 
     userList: this.userId // I want to nest the email in here 
    }; 

    // Get a key for a new Post. 
    let newPostKey:string = this.formListRef.push().key; 

    // Write the new post's data simultaneously in the posts list and the user's post list. 
    let updates = {}; 
    // write to the users record 
    updates[this.userPath + '/' + newPostKey] = true; // just set this to true be 
    updates[this.formsByIdPath + '/' + newPostKey] = postData; 

    return this.rootRef.update(updates); 
    //return rootRef.update(updates); 

    } 

Mais je ne sais pas comment imbriquer mon adresse e-mail des utilisateurs sous leur identifiant.

Toute aide appréciée.

Répondre

1

Je pense que vous devez modifier votre postdéclaratoire à ceci:

// A post entry. 
let postData = { 
    name: formName, 
    date: formDate, 
    userList: [ 
    {email: this.userId} // I want to nest the email in here 
    ] 
}; 

ou créer un tableau de valeurs:

// A post entry. 
let postData = { 
    name: formName, 
    date: formDate, 
    userList: [ 
    this.userId // I want to nest the email in here 
    ] 
}; 

alors vous pouvez faire une mise à jour-chemin profond.

Ici vous pouvez trouver plus d'informations: https://firebase.googleblog.com/2015/09/introducing-multi-location-updates-and_86.html

+0

parfait - merci – rhysclay