2017-05-19 2 views
2

Jusqu'à présent, je sauvé toutes mes données avec la ligne de code suivante:createRecord avec ID personnalisé dans emberjs 2.x et 3.x Firebase

saveUser(params) { 
     let newUser = this.store.createRecord('user', params); 
     newUser.save(); 
     this.transitionTo('index'); 

Cela a bien fonctionné, mais ne permettait pas la coutume ID de dans firebase, donc je l'ai changé en:

saveUser(params) { 
     let newUser = this.store.createRecord('user', { 
     id: params.loginId, 
     name: params.name, 
     nickname: params.nickname, 
     imageUrl: params.imageUrl, 
     email: params.email 
     }); 
     newUser.save(); 
     this.transitionTo('index'); 

les traite exactement comme je veux qu'ils soient stockés sur la base de données Firebase, il n'y donc pas de problème. Je me demande cependant, et ne trouvant aucune solution sur le web, comment je peux combiner les deux, de sorte que je n'ai pas à lier chaque paramètre. Cela risque de poser des problèmes lorsque j'ajoute/supprime des propriétés de modèle. Quelque chose que je suis à la recherche ressemblerait à ceci (pseudo, oui je l'ai essayé, ne fonctionne pas!):

let newUser = this.store.createRecord('user', {id: params.loginId}, params); 

En bref, je suis à la recherche pour les propriétés dynamiques de ('model', params), mais avec la option pour ajuster manuellement 1 (ou plusieurs) enregistrements sans avoir à taper tous les des paramètres.

Merci d'avance!

Répondre

1

Vous voudrez probablement personnaliser votre sérialiseur pour accomplir ceci. L'exemple dans les docs est bon, donc ça devrait être plutôt simple: https://guides.emberjs.com/v2.13.0/models/customizing-serializers/

Je suppose, bien sûr, que vous utilisez des données Ember pour vos modèles.

+0

Merci, cela a effectivement aidé. J'ai pris un identifiant incrémental simple pour tous les enregistrements maintenant. Ma motivation était d'attribuer des noms de catégorie, des noms d'utilisateur, etc ... comme ID, pour une meilleure lisibilité de l'url, mais je peux tout aussi bien utiliser des limaces le cas échéant. De cette façon, je n'ai pas à lier tous les paramètres comme je l'ai mentionné. –