Как получить пользователей из Cloud Firestore? - PullRequest
0 голосов
/ 04 февраля 2020

Недавно я узнал о разработке приложений, и мне трудно добавить учетные записи пользователей Firestore в приложение задачи, я использую плагины flutter и flutter_chips_input . Есть ли пример, чтобы решить эту проблему?

ChipsInput(
    initialValue: [
        AppProfile('John Doe', 'jdoe@flutter.io', 'https://d2gg9evh47fn9z.cloudfront.net/800px_COLOURBOX4057996.jpg')
    ],
    decoration: InputDecoration(
        labelText: "Select People",
    ),
    maxChips: 3,
    findSuggestions: (String query) {
        if (query.length != 0) {
            var lowercaseQuery = query.toLowerCase();
            return mockResults.where((profile) {
                return profile.name.toLowerCase().contains(query.toLowerCase()) || profile.email.toLowerCase().contains(query.toLowerCase());
            }).toList(growable: false)
                ..sort((a, b) => a.name
                    .toLowerCase()
                    .indexOf(lowercaseQuery)
                    .compareTo(b.name.toLowerCase().indexOf(lowercaseQuery)));
        } else {
            return const <AppProfile>[];
        }
    },
    onChanged: (data) {
        print(data);
    },
    chipBuilder: (context, state, profile) {
        return InputChip(
            key: ObjectKey(profile),
            label: Text(profile.name),
            avatar: CircleAvatar(
                backgroundImage: NetworkImage(profile.imageUrl),
            ),
            onDeleted: () => state.deleteChip(profile),
            materialTapTargetSize: MaterialTapTargetSize.shrinkWrap,
        );
    },
    suggestionBuilder: (context, state, profile) {
        return ListTile(
            key: ObjectKey(profile),
            leading: CircleAvatar(
                backgroundImage: NetworkImage(profile.imageUrl),
            ),
            title: Text(profile.name),
            subtitle: Text(profile.email),
            onTap: () => state.selectSuggestion(profile),
        );
    },
)

1 Ответ

0 голосов
/ 06 февраля 2020

Когда вы внедряете Firebase в своем продукте, помните, что вы пишете код на стороне клиента. Код, который вы пишете, будет работать на отдельных пользовательских устройствах. Выборка всех пользователей не должна быть реализована в конце пользователя. Поэтому вы не можете напрямую получать авторизованных пользователей в приложении.

Это может быть достигнуто с помощью Облачных функций . Вы можете развернуть код Javascript или Typescript в облаке, чтобы иметь динамическое поведение c на вашем сервере. Вы можете использовать Auth Triggers и отслеживать пользователей в вашей базе данных. Например, вы можете прикрепить функцию обратного вызова к onCreate(). Он срабатывает, когда:

  • Пользователь создает учетную запись электронной почты и пароль.
  • Пользователь впервые входит в систему с использованием федеративного поставщика удостоверений.
  • Разработчик создает учетную запись, используя Firebase Admin SDK.
  • Пользователь впервые входит в новый сеанс анонимной аутентификации.

с объектом UserRecord. Затем вы можете сохранить информацию, которую вы хотите, в Firestore, большую часть времени в коллекции users или подобной. Теперь у вас есть пользователи в базе данных Firestore, вы можете использовать их в приложении, с правильно настроенными правилами безопасности , конечно. Вы можете получить их все, получить пользователя spesifi c или пользователей с запросами и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...