Advertisement
Guest User

Untitled

a guest
Jul 16th, 2018
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /**
  2.  *
  3.  */
  4. const checkReference = ( document, path ) => document.get( path ).constructor.name === "DocumentReference";
  5.  
  6. /**
  7.  *
  8.  */
  9. const getReferences = document => Object.keys( document.exists ? document.data() : {} ).filter( path => checkReference( document, path ) );
  10.  
  11. /**
  12.  *
  13.  */
  14. const populate = document => {
  15.  
  16.     const references = getReferences( document )
  17.  
  18.     if ( references == 0 ) return document
  19.    
  20.     return Promise
  21.         .all( references.map( reference => document.get( reference ).get().then( snapshot => document[ reference ] = snapshot ) ) )
  22.         .then( () => references.forEach( reference => populate( document[ reference ] ) ) )
  23. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement