{"id":67,"date":"2019-04-13T01:15:59","date_gmt":"2019-04-12T16:15:59","guid":{"rendered":"https:\/\/outdoor-development.work\/index\/?p=67"},"modified":"2020-08-22T14:17:12","modified_gmt":"2020-08-22T05:17:12","slug":"go%e3%81%a7firebase-cloudfirestore%e6%8e%a5%e7%b6%9a%e3%80%81%e5%80%a4%e5%8f%96%e5%be%97%e3%81%be%e3%81%a7","status":"publish","type":"post","link":"https:\/\/outdoor-development.work\/index\/2019\/04\/13\/go%e3%81%a7firebase-cloudfirestore%e6%8e%a5%e7%b6%9a%e3%80%81%e5%80%a4%e5%8f%96%e5%be%97%e3%81%be%e3%81%a7\/","title":{"rendered":"\u3010Go\u3011firebase CloudFirestore\u63a5\u7d9a\u3001\u5024\u53d6\u5f97\u307e\u3067"},"content":{"rendered":"\n<p>CloudFirestore\u3092\u4f7f\u7528\u3057\u305fWeb\u30a2\u30d7\u30ea\u3092\u4f5c\u308b\u6642\u306b\u8abf\u3079\u3082\u306e\u304c\u3066\u3089\u8a18\u8ff0\u3092\u3057\u305f\u306e\u3067\u5fd8\u308c\u306a\u3044\u3088\u3046\u306b\u30e1\u30e2\u2026<\/p>\n\n\n\n<p>\u5927\u307e\u304b\u306a\u5de5\u7a0b\u306f\u4ee5\u4e0b\u306e\u901a\u308a<\/p>\n\n\n\n<ol><li>FireBase\u306e\u30b3\u30f3\u30bd\u30fc\u30eb\u306b\u30ed\u30b0\u30a4\u30f3<\/li><li>\u5bfe\u8c61\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u79d8\u5bc6\u9375\u3092\u53d6\u5f97\u3059\u308b<\/li><li>go get\u30b3\u30de\u30f3\u30c9\u3067\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/li><li>\u79d8\u5bc6\u9375\u3092\u7528\u3044\u3066\u63a5\u7d9a\u3001\u5024\u53d6\u5f97<\/li><\/ol>\n\n\n\n<h3>1.FireBase\u306e\u30b3\u30f3\u30bd\u30fc\u30eb\u306b\u30ed\u30b0\u30a4\u30f3<\/h3>\n\n\n\n<p>\u30b3\u30f3\u30bd\u30fc\u30eb\u306b\u30ed\u30b0\u30a4\u30f3\u3057\u3066\u5bfe\u8c61\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u9078\u629e<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" width=\"890\" height=\"462\" src=\"https:\/\/outdoor-development.work\/index\/wp-content\/uploads\/2019\/04\/\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u9078\u629e\u753b\u9762.png\" alt=\"\" class=\"wp-image-69\" srcset=\"https:\/\/outdoor-development.work\/index\/wp-content\/uploads\/2019\/04\/\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u9078\u629e\u753b\u9762.png 890w, https:\/\/outdoor-development.work\/index\/wp-content\/uploads\/2019\/04\/\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u9078\u629e\u753b\u9762-300x156.png 300w, https:\/\/outdoor-development.work\/index\/wp-content\/uploads\/2019\/04\/\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u9078\u629e\u753b\u9762-768x399.png 768w\" sizes=\"(max-width: 890px) 100vw, 890px\" \/><figcaption><br><\/figcaption><\/figure>\n\n\n\n<h3>2.\u5bfe\u8c61\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u79d8\u5bc6\u9375\u3092\u53d6\u5f97\u3059\u308b<\/h3>\n\n\n\n<p>\u8a2d\u5b9a\u30dc\u30bf\u30f3\u304b\u3089\u300c\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u300d\u306e\u8a2d\u5b9a\u3092\u9078\u629e<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" width=\"450\" height=\"409\" src=\"https:\/\/outdoor-development.work\/index\/wp-content\/uploads\/2019\/04\/\u8a2d\u5b9a.png\" alt=\"\" class=\"wp-image-75\" srcset=\"https:\/\/outdoor-development.work\/index\/wp-content\/uploads\/2019\/04\/\u8a2d\u5b9a.png 450w, https:\/\/outdoor-development.work\/index\/wp-content\/uploads\/2019\/04\/\u8a2d\u5b9a-300x273.png 300w\" sizes=\"(max-width: 450px) 100vw, 450px\" \/><\/figure>\n\n\n\n<p>\u30b5\u30fc\u30d3\u30b9\u30a2\u30ab\u30a6\u30f3\u30c8\u30bf\u30d6\u3092\u9078\u629e\u3057\u3001 <br>Admin SDK \u69cb\u6210\u30b9\u30cb\u30da\u30c3\u30c8 \u3067Go\u3092\u9078\u629e\u3059\u308b\u3002\u65b0\u3057\u3044\u79d8\u5bc6\u9375\u306e\u751f\u6210\u30dc\u30bf\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3057\u3001\u79d8\u5bc6\u9375\uff08json\u30d5\u30a1\u30a4\u30eb\uff09\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3059\u308b<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" width=\"1024\" height=\"846\" src=\"https:\/\/outdoor-development.work\/index\/wp-content\/uploads\/2019\/04\/\u7121\u984c-1-1024x846.png\" alt=\"\" class=\"wp-image-82\" srcset=\"https:\/\/outdoor-development.work\/index\/wp-content\/uploads\/2019\/04\/\u7121\u984c-1-1024x846.png 1024w, https:\/\/outdoor-development.work\/index\/wp-content\/uploads\/2019\/04\/\u7121\u984c-1-300x248.png 300w, https:\/\/outdoor-development.work\/index\/wp-content\/uploads\/2019\/04\/\u7121\u984c-1-768x634.png 768w, https:\/\/outdoor-development.work\/index\/wp-content\/uploads\/2019\/04\/\u7121\u984c-1.png 1069w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>\u4e0a\u8a18\u306e\u753b\u9762\u3067\u8868\u793a\u3055\u308c\u3066\u3044\u308b\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u306f\u5f8c\u3005\u4f7f\u3046\u306e\u3067\u30b3\u30d4\u30fc\u3057\u3066\u304a\u304f\u3068\u5409<\/p>\n\n\n\n<h3>3.go get\u30b3\u30de\u30f3\u30c9\u3067\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/h3>\n\n\n\n<p>\u4ee5\u4e0b\u306e\u30b3\u30de\u30f3\u30c9\u3067\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/p>\n\n\n\n<pre> go get firebase.google.com\/go <\/pre>\n\n\n\n<h3>3.\u79d8\u5bc6\u9375\u3092\u7528\u3044\u3066\u63a5\u7d9a\u3001\u5024\u53d6\u5f97<\/h3>\n\n\n\n<p>\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u63a5\u7d9a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">package main\n\nimport (\n    \"fmt\"\n\n    \"golang.org\/x\/net\/context\"\n\n    firebase \"firebase.google.com\/go\"\n    \"google.golang.org\/api\/option\"\n)\n\nfunc main() {\n    opt := option.WithCredentialsFile(\"key.json\")\n    ctx := context.Background()\n    app, err := firebase.NewApp(ctx, nil, opt)\n    if err != nil {\n        fmt.Errorf(\"error initializing app: %v\", err)\n    }\n    client, err := app.Firestore(ctx)\n    if err != nil {\n        fmt.Errorf(\"error initializing client: %v\", err)\n    }\n    defer client.Close()\n    fmt.Println(\"Connection done\")\n}<\/pre>\n\n\n\n<p>\u5024\u306e\u53d6\u5f97\u306e\u5834\u5408\u306f\u3053\u3093\u306a\u611f\u3058<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">package main\n\nimport (\n    \"fmt\"\n\n    \"golang.org\/x\/net\/context\"\n\n    firebase \"firebase.google.com\/go\"\n    \"google.golang.org\/api\/option\"\n)\n\nfunc main() {\n    \/\/ \u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u63a5\u7d9a\n    opt := option.WithCredentialsFile(\"key.json\")\n    ctx := context.Background()\n    app, err := firebase.NewApp(ctx, nil, opt)\n    if err != nil {\n        fmt.Errorf(\"error initializing app: %v\", err)\n    }\n    client, err := app.Firestore(ctx)\n    if err != nil {\n        fmt.Errorf(\"error initializing client: %v\", err)\n    }\n    defer client.Close()\n    fmt.Println(\"Connection done\")\n\n    \/\/ \u5024\u306e\u53d6\u5f97\n    collection := client.Collection(\"\u30b3\u30ec\u30af\u30b7\u30e7\u30f3ID\")\n    doc := collection.Doc(\"\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8ID\")\n    field, err := doc.Get(ctx)\n    if err != nil {\n        fmt.Errorf(\"error get data: %v\", err)\n    }\n    data := field.Data()\n    for key, value := range data {\n        fmt.Printf(\"key: %v, value: %v\\n\", key, value)\n    }\n}\n<\/pre>\n<div class=\"veu_socialSet veu_contentAddSection\"><script>window.twttr=(function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],t=window.twttr||{};if(d.getElementById(id))return t;js=d.createElement(s);js.id=id;js.src=\"https:\/\/platform.twitter.com\/widgets.js\";fjs.parentNode.insertBefore(js,fjs);t._e=[];t.ready=function(f){t._e.push(f);};return t;}(document,\"script\",\"twitter-wjs\"));<\/script><ul><li class=\"sb_twitter sb_icon\"><a href=\"\/\/twitter.com\/intent\/tweet?url=https%3A%2F%2Foutdoor-development.work%2Findex%2F2019%2F04%2F13%2Fgo%25e3%2581%25a7firebase-cloudfirestore%25e6%258e%25a5%25e7%25b6%259a%25e3%2580%2581%25e5%2580%25a4%25e5%258f%2596%25e5%25be%2597%25e3%2581%25be%25e3%2581%25a7%2F&amp;text=Outdoor+Development\" target=\"_blank\" ><span class=\"vk_icon_w_r_sns_twitter icon_sns\"><\/span><span class=\"sns_txt\">twitter<\/span><\/a><\/li><\/ul><\/div><!-- [ \/.socialSet ] -->","protected":false},"excerpt":{"rendered":"<p>CloudFirestore\u3092\u4f7f\u7528\u3057\u305fWeb\u30a2\u30d7\u30ea\u3092\u4f5c\u308b\u6642\u306b\u8abf\u3079\u3082\u306e\u304c\u3066\u3089\u8a18\u8ff0\u3092\u3057\u305f\u306e\u3067\u5fd8\u308c\u306a\u3044\u3088\u3046\u306b\u30e1\u30e2\u2026 \u5927\u307e\u304b\u306a\u5de5\u7a0b\u306f\u4ee5\u4e0b\u306e\u901a\u308a FireBase\u306e\u30b3\u30f3\u30bd\u30fc\u30eb\u306b\u30ed\u30b0\u30a4\u30f3 \u5bfe\u8c61\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u79d8\u5bc6\u9375\u3092\u53d6\u5f97\u3059\u308b go g [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[7],"tags":[53,52,45,46,50,51],"_links":{"self":[{"href":"https:\/\/outdoor-development.work\/index\/wp-json\/wp\/v2\/posts\/67"}],"collection":[{"href":"https:\/\/outdoor-development.work\/index\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/outdoor-development.work\/index\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/outdoor-development.work\/index\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/outdoor-development.work\/index\/wp-json\/wp\/v2\/comments?post=67"}],"version-history":[{"count":14,"href":"https:\/\/outdoor-development.work\/index\/wp-json\/wp\/v2\/posts\/67\/revisions"}],"predecessor-version":[{"id":464,"href":"https:\/\/outdoor-development.work\/index\/wp-json\/wp\/v2\/posts\/67\/revisions\/464"}],"wp:attachment":[{"href":"https:\/\/outdoor-development.work\/index\/wp-json\/wp\/v2\/media?parent=67"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/outdoor-development.work\/index\/wp-json\/wp\/v2\/categories?post=67"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/outdoor-development.work\/index\/wp-json\/wp\/v2\/tags?post=67"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}