前提・実現したいこと
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)
あなたの回答
tips
プレビュー