質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Cloud Firestore

Cloud Firestore は、自動スケーリングと高性能を実現し、アプリケーション開発を簡素化するように構築された NoSQLドキュメントデータベースです。

Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

Q&A

0回答

815閲覧

Cloud Firestoreのクエリが上手くいかない

tetra_

総合スコア2

Cloud Firestore

Cloud Firestore は、自動スケーリングと高性能を実現し、アプリケーション開発を簡素化するように構築された NoSQLドキュメントデータベースです。

Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

0グッド

0クリップ

投稿2020/06/18 01:26

前提・実現したいこと

firestoreから値を取り出したい

発生している問題・エラーメッセージ

なし

該当のソースコード

go

1//DB接続メソッド 2func DbGenerate() (context.Context,*firestore.Client){ 3 ctx := context.Background() 4 5 store, err := firestore.NewClient(ctx, "sample") 6 if err != nil { 7 log.Fatal(err) 8 } 9 return ctx,store 10}

go

1statusがIncompleteの50件取得 2func GetTaskLimit50(userID string) (*[]model.ToDo,error){ 3 ctx,store := DbGenerate() 4 iter := store.Collection("ToDo"). 5 Where("UserID", "==", userID). 6 Where("status","==","Incomplete"). 7 OrderBy("time",firestore.Desc).Limit(50).Documents(ctx) 8 9 todoModel,err := IterLoop(iter) 10 if err != nil{ 11 return nil,err 12 } 13 return todoModel,nil 14}

go

1//ToDoのモデル 2type ToDo struct { 3 TaskID string `json:"taskid"`//UUID task 4 UserID string `json:"userid"` 5 Name string `json:"name"` 6 Time time.Time `json:"time"` 7 Content string `json:"content"` 8 Term time.Time `json:"term"` //期間 9 Status string `json:"status"` //Incomplete == 未完了 Completed == 完了 10}

Json

1//firestoreに格納されているデータ 2{ 3 "taskid": "1ea773cd-68b1-45c9-a43f-388cbba0116f", 4 "userid": "cb64823c-2d7b-4ca5-81bb-52116c1d732a", 5 "name": "買い物2", 6 "time": "2020-06-17T14:34:52.563152Z", 7 "content": "人参、ジャガイモ,キャベツ", 8 "term": "2020-01-01T10:10:10Z", 9 "status": "Incomplete" 10 }, 11 { 12 "taskid": "6ad2e9b2-5e56-491c-b0da-32382a89138f", 13 "userid": "cb64823c-2d7b-4ca5-81bb-52116c1d732a", 14 "name": "買い物3", 15 "time": "2020-06-17T14:34:54.879045Z", 16 "content": "人参、ジャガイモ,キャベツ", 17 "term": "2020-01-01T10:10:10Z", 18 "status": "Incomplete" 19 },

試したこと

これだと動かないですが

go

1iter := store.Collection("ToDo"). 2 Where("UserID", "==", userID). 3 Where("status","==","Incomplete"). 4 OrderBy("time",firestore.Desc).Limit(50).Documents(ctx) 5

whereとOrderを消した場合は動きました(取得するものは本来欲しいデータではない)

go

1iter := store.Collection("ToDo"). 2 Where("UserID", "==", userID). 3 Limit(50).Documents(ctx)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問