【问题标题】:How to get users from Cloud Firestore?如何从 Cloud Firestore 获取用户?
【发布时间】:2020-02-04 09:44:50
【问题描述】:

我最近学习了开发应用程序,我在任务应用程序中添加 Firestore 用户帐户有困难,我使用 Flutter 和flutter_chips_input plugins。有解决这个问题的例子吗?

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),
        );
    },
)

【问题讨论】:

  • 将 Firestore 用户帐户添加到任务应用程序这是什么意思?
  • 抱歉,我的意思是我在 Firestore 中有一个用户,想将该用户添加到我的新任务应用中
  • username "msoleh" email "msoleh399@gmail.com" fullName "Muhammad Solihin" id "106807126702075940257" photoUrl "lh5.googleusercontent.com/-PMvWjGkMFp0/AAAAAAAAAAI/AAAAAAAAAAA/…" (string) status "" timestamp 2020 年 1 月 15 日 4:18 :14 PM UTC+7
  • 您想用现有用户填充小部件吗?
  • @easeccy 是的,怎么做?

标签: flutter google-cloud-firestore


【解决方案1】:

当您在产品中实施 Firebase 时,请注意您正在编写客户端代码。您编写的代码将在单个用户设备上运行。获取所有用户不应该在用户端实现。因此,您无法直接在应用中获取授权用户。

可以通过Cloud Functions 实现。您可以将 Javascript 或 Typescript 代码部署到云中,以便在您的后端拥有动态行为。您可以使用Auth Triggers 并跟踪数据库中的用户。例如,您可以将回调函数附加到onCreate()。它会在以下情况下触发:

  • 用户创建了一个电子邮件帐户和密码。
  • 用户首次使用联合身份提供商登录。
  • 开发者使用 Firebase Admin SDK 创建一个帐户。
  • 用户首次登录新的匿名身份验证会话。

带有UserRecord 对象。然后您可以将您想要的信息保存到 Firestore,大部分时间在 users 集合或类似的集合下。现在您的 Firestore 数据库中有用户,您可以在应用程序中使用它们,当然要正确配置 security rules。您可以全部获取它们,获取特定用户或带有查询的用户等等。

【讨论】:

  • 是的,我仍然尝试使用 cloud firestore,但我无法在小部件上实现它。仍然出现错误
  • 什么意思?
猜你喜欢
  • 1970-01-01
  • 2020-03-17
  • 1970-01-01
  • 2020-06-04
  • 1970-01-01
  • 2018-12-06
  • 2021-05-28
  • 1970-01-01
相关资源
最近更新 更多