Advertisement
Guest User

Untitled

a guest
Jun 19th, 2019
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.44 KB | None | 0 0
  1. - members_full -+
  2. |
  3. + --- abnGMbre --- +
  4. |
  5. + --- mother : 'His mom'
  6. + --- Father: 'daddy'
  7.  
  8. - members_header+
  9. |
  10. + ---- abnGMbre -- +
  11. |
  12. + ---- fullname: 'john Doe'
  13. + ---- pictURL: 'path to his profile pic'
  14.  
  15. const member:any = data;
  16. var fullRef : admin.firestore.DocumentReference;
  17. var headRef : admin.firestore.DocumentReference;
  18. var countRef: admin.firestore.DocumentReference;
  19. var createNewMember = false;
  20. if(member.uid!==undefined && member.uid!==null){ // update
  21. fullRef = fsDB.collection('members_full').doc(member.uid);
  22. headRef = fsDB.collection('members_header').doc(member.uid);
  23. } else {
  24. fullRef = fsDB.collection('members_full').doc();
  25. headRef = fsDB.collection('members_header').doc(fullRef.id);
  26. countRef = fsDB.collection('counters').doc('count_members');
  27. createNewMember = true;
  28. }
  29.  
  30. return fsDB.runTransaction(t => {
  31. return t.get(fullRef).then(doc => {
  32. if(!createNewMember && !doc.exists){ // Error, cannot update if not yet exists
  33. t.update(countRef, {count: admin.firestore.FieldValue.increment(1)}); // Do not consider this line... Still to fix
  34. }
  35. // Increment number of members if creation
  36. if(createNewMember){
  37. t.update(countRef, {members_count: admin.firestore.FieldValue.increment(1)});
  38. }
  39.  
  40. // Update/create full details
  41. t.set(fullRef, {
  42. surname : member.surname ,
  43. firstName : member.firstName ,
  44. birthDate : member.birthDate ,
  45. birthPlace : member.birthPlace ,
  46. email : member.email ,
  47. phone : member.phone ,
  48. occupation : member.occupation ,
  49. father : member.father ,
  50. mother : member.mother ,
  51. spouse : member.spouse ,
  52. children : member.children ,
  53. addressHome : member.addressHome ,
  54. addressLocal: member.addressLocal,
  55. contactHome : member.contactHome ,
  56. contactLocal: member.contactLocal,
  57. comment : member.comment ,
  58. regDate : member.regDate ,
  59. });
  60. // Update/create header details
  61. t.set(headRef, {
  62. fullName : member.fullName ,
  63. gender : member.gender ,
  64. active : member.active ,
  65. picURL : member.picURL ,
  66. });
  67.  
  68. }).then(() => {
  69. return { status : STATUS.ok , pointer:'then t.get'}
  70. }).catch(err => {
  71. return {
  72. status: STATUS.fail,
  73. message: err.message,
  74. error: err,
  75. pointer: 't.get'
  76. }
  77. });
  78. }).then(() => {
  79. return { status : STATUS.ok, pointer: 'then run transact' }
  80. }).catch(error =>{
  81. return {
  82. status: STATUS.fail,
  83. message: error.message,
  84. debug: 'run transaction err',
  85. error: error
  86. }
  87. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement