ソース
- 
Go から Firestore のデータ型変換
https://godoc.org/cloud.google.com/go/firestore#DocumentRef.Create - 
Firestore から Go のデータ型変換
https://godoc.org/cloud.google.com/go/firestore#DocumentSnapshot.DataTo 
Firestoreのデータ型
Go から Firestore のデータ型変換
| Go | Firestore | 
|---|---|
| bool | Bool | 
| string | String | 
| int, int8, int16, int32 and int64 | Integer | 
| uint8, uint16 and uint32 | Integer | 
| uint, uint64 and uintptr | 1だめ | 
| float32 and float64 | Double | 
| []byte | Bytes | 
| time.Time and 2*ts.Timestamp | Timestamp | 
| 3*latlng.LatLng | GeoPoint | 
| Slices | Array | 
| *firestore.DocumentRef | Reference | 
| Maps and structs | Map | 
| あらゆる型のnil | Null | 
Firestore から Go のデータ型変換
| Firestore | Go | 
|---|---|
| Null | nil | 
| ブール値 (Bool) | bool | 
| 文字列 (String) | string | 
| 整数 (Integer) | 4int64 | 
| 浮動小数点数 (Double) | 5float64 | 
| バイト (Bytes) | []byte | 
| 日時 (Timestamp) | time.Time | 
| 地理的座標 (GeoPoint) | 3*latlng.LatLng | 
| 配列 (Arrays ) | 6[]interface{} | 
| マップ (Maps) | 7map[string]interface{} | 
| 参照 (References) | *firestore.DocumentRefs | 
- 
整数型の基礎となるint64では表現できない値をもつ可能性があるため。 ↩
 - 
tsパッケージ:"github.com/golang/protobuf/ptypes/timestamp" ↩
 - 
latlngパッケージ:"google.golang.org/genproto/googleapis/type/latlng" ↩ ↩2
 - 
構造体フィールドにセットする場合、uint, uint64, uintptr 以外の整数型(signedやunsignedによらず)が許可されます。オーバーフローはエラーとして検出されます。 ↩
 - 
構造体フィールドにセットする場合、float32も許可されます。オーバーフローはエラーとして検出されます。 ↩
 - 
構造体フィールドにセットする場合、任意の型のsliceまたはarrayとして、再帰的に入力されます。Sliceは入力値に合わせてリサイズされます。配列(array)では余った要素は0で満たされ、逆に配列が短すぎる場合は入力値の余りは削除されます。 ↩
 - 
構造体フィールドにセットする場合、キーは文字列のみ、値は任意の型が許可され、再帰的に入力されます。 ↩