@@ -349,32 +349,33 @@ def _get_value_from_value_pb(value_pb):
349349 :returns: The value provided by the Protobuf.
350350 """
351351 result = None
352- # Message field (google.protobuf.Timestamp)
353- if value_pb .HasField ('timestamp_value' ):
352+ value_type = value_pb .WhichOneof ('value_type' )
353+
354+ if value_type == 'timestamp_value' :
354355 result = _pb_timestamp_to_datetime (value_pb .timestamp_value )
355356
356- elif value_pb . HasField ( 'key_value' ): # Message field (Key)
357+ elif value_type == 'key_value' :
357358 result = key_from_protobuf (value_pb .key_value )
358359
359- elif value_pb . HasField ( 'boolean_value' ): # Simple field (bool)
360+ elif value_type == 'boolean_value' :
360361 result = value_pb .boolean_value
361362
362- elif value_pb . HasField ( 'double_value' ): # Simple field (double)
363+ elif value_type == 'double_value' :
363364 result = value_pb .double_value
364365
365- elif value_pb . HasField ( 'integer_value' ): # Simple field (int64)
366+ elif value_type == 'integer_value' :
366367 result = value_pb .integer_value
367368
368- elif value_pb . HasField ( 'string_value' ): # Simple field (string)
369+ elif value_type == 'string_value' :
369370 result = value_pb .string_value
370371
371- elif value_pb . HasField ( 'blob_value' ): # Simple field (bytes)
372+ elif value_type == 'blob_value' :
372373 result = value_pb .blob_value
373374
374- elif value_pb . HasField ( 'entity_value' ): # Message field (Entity)
375+ elif value_type == 'entity_value' :
375376 result = entity_from_protobuf (value_pb .entity_value )
376377
377- elif value_pb . array_value . values :
378+ elif value_type == ' array_value' :
378379 result = [_get_value_from_value_pb (value )
379380 for value in value_pb .array_value .values ]
380381
0 commit comments