code: func (n *Node) Child(name string) (*Node, bool) {
  	n.mtx.RLock()
  	defer n.mtx.RUnlock()
  
  	name = strings.Trim(name, "/")
  	rabbitHole := strings.Split(name, "/")
  
  	current := n
  	for i := 0; i < len(rabbitHole); i++ {
  		next, ok := current.Children[rabbitHole[i]]
  		if !ok {
  			// item does not exist, no need to do anything
  			return nil, false
  		}
  
  		current = next
  	}
  	return current, true
  }
docs: // Child gets a DataSnapshot for the location at the specified relative path.
  // The relative path can either be a simple child key (e.g. 'fred') or a deeper
  // slash-separated path (e.g. 'fred/name/first').