Используя базу данных Google Firestore, я пытаюсь запросить коллекцию с помощью оператора «in».

Я тщательно скопировал пример из Google, но мой код (с использованием golang) приводит к ошибке «Неверный оператор Firebase «in»».

    usernames := []string{
        "5nMUe1hWCu",
        "5n_8e1hwCw",
        "jnM831Qwuk",
    }

    users := database.DB.Collection("User")
    q := users.Where("Username", "in", usernames).Documents(config.CTX)

    for {
        doc, err := q.Next()
        if err != nil {
            t.Log("Throws error here:", err.Error())
        }
    }

// Error is --  invalid operator "in"

Это точно соответствует коду примера здесь: https://firebase.google. com/docs/firestore/query-data/queries#array_membership

0
richp10 28 Ноя 2019 в 13:54
На самом деле - я мог бы решить это. Я думаю, что go попал в устаревшую библиотеку - изменение go.mod на cloud.google.com/go/firestore v1.1.0 похоже решило проблему, но я подтвержу, если это в этом дело.
 – 
richp10
28 Ноя 2019 в 14:13

1 ответ

Проблема заключалась в том, что у меня была устаревшая библиотека firebase.

В версии v1.1.0 добавлена ​​поддержка операторов запросов in и array-contains-any.

1
richp10 28 Ноя 2019 в 14:17