Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- - members_full -+
- |
- + --- abnGMbre --- +
- |
- + --- mother : 'His mom'
- + --- Father: 'daddy'
- - members_header+
- |
- + ---- abnGMbre -- +
- |
- + ---- fullname: 'john Doe'
- + ---- pictURL: 'path to his profile pic'
- const member:any = data;
- var fullRef : admin.firestore.DocumentReference;
- var headRef : admin.firestore.DocumentReference;
- var countRef: admin.firestore.DocumentReference;
- var createNewMember = false;
- if(member.uid!==undefined && member.uid!==null){ // update
- fullRef = fsDB.collection('members_full').doc(member.uid);
- headRef = fsDB.collection('members_header').doc(member.uid);
- } else {
- fullRef = fsDB.collection('members_full').doc();
- headRef = fsDB.collection('members_header').doc(fullRef.id);
- countRef = fsDB.collection('counters').doc('count_members');
- createNewMember = true;
- }
- return fsDB.runTransaction(t => {
- return t.get(fullRef).then(doc => {
- if(!createNewMember && !doc.exists){ // Error, cannot update if not yet exists
- t.update(countRef, {count: admin.firestore.FieldValue.increment(1)}); // Do not consider this line... Still to fix
- }
- // Increment number of members if creation
- if(createNewMember){
- t.update(countRef, {members_count: admin.firestore.FieldValue.increment(1)});
- }
- // Update/create full details
- t.set(fullRef, {
- surname : member.surname ,
- firstName : member.firstName ,
- birthDate : member.birthDate ,
- birthPlace : member.birthPlace ,
- email : member.email ,
- phone : member.phone ,
- occupation : member.occupation ,
- father : member.father ,
- mother : member.mother ,
- spouse : member.spouse ,
- children : member.children ,
- addressHome : member.addressHome ,
- addressLocal: member.addressLocal,
- contactHome : member.contactHome ,
- contactLocal: member.contactLocal,
- comment : member.comment ,
- regDate : member.regDate ,
- });
- // Update/create header details
- t.set(headRef, {
- fullName : member.fullName ,
- gender : member.gender ,
- active : member.active ,
- picURL : member.picURL ,
- });
- }).then(() => {
- return { status : STATUS.ok , pointer:'then t.get'}
- }).catch(err => {
- return {
- status: STATUS.fail,
- message: err.message,
- error: err,
- pointer: 't.get'
- }
- });
- }).then(() => {
- return { status : STATUS.ok, pointer: 'then run transact' }
- }).catch(error =>{
- return {
- status: STATUS.fail,
- message: error.message,
- debug: 'run transaction err',
- error: error
- }
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement