code: def get(self, field_path):
          
          if not self._exists:
              return None
          nested_data = field_path_module.get_nested_value(field_path, self._data)
          return copy.deepcopy(nested_data)
docs: Get a value from the snapshot data.
  
          If the data is nested, for example:
  
          .. code-block:: python
  
             >>> snapshot.to_dict()
             {
                 'top1': {
                     'middle2': {
                         'bottom3': 20,
                         'bottom4': 22,
                     },
                     'middle5': True,
                 },
                 'top6': b'\x00\x01 foo',
             }
  
          a **field path** can be used to access the nested data. For
          example:
  
          .. code-block:: python
  
             >>> snapshot.get('top1')
             {
                 'middle2': {
                     'bottom3': 20,
                     'bottom4': 22,
                 },
                 'middle5': True,
             }
             >>> snapshot.get('top1.middle2')
             {
                 'bottom3': 20,
                 'bottom4': 22,
             }
             >>> snapshot.get('top1.middle2.bottom3')
             20
  
          See :meth:`~.firestore_v1beta1.client.Client.field_path` for
          more information on **field paths**.
  
          A copy is returned since the data may contain mutable values,
          but the data stored in the snapshot must remain immutable.
  
          Args:
              field_path (str): A field path (``.``-delimited list of
                  field names).
  
          Returns:
              Any or None:
                  (A copy of) the value stored for the ``field_path`` or
                  None if snapshot document does not exist.
  
          Raises:
              KeyError: If the ``field_path`` does not match nested data
                  in the snapshot.