通过 Firebase 身份验证在 Flutter 应用上显示用户数据

问题描述 投票:0回答:1

我正在构建一个简单的聊天应用程序,只需单击一个按钮,我希望能够从我的 Firebase 身份验证中看到所有经过身份验证的用户的列表,我该如何做同样的事情?

我找到了从 firestore 集合中获取用户的解决方案,尽管这不是我正在寻找的......

enter image description here

我希望将这些数据提取到一个列表中,以某种方式显示它......我怎样才能完成这个任务?

flutter firebase
1个回答
0
投票

要列出所有 Firebase Auth 用户,您需要使用 Firebase 的 Admin SDK,因为客户端 Firebase Auth 不允许直接获取所有用户。

步骤:

  1. 创建云函数以列出用户:

    const functions = require('firebase-functions');
    const admin = require('firebase-admin');
    admin.initializeApp();
    
    exports.listAllUsers = functions.https.onCall(async (data, context) => {
      if (!context.auth) throw new functions.https.HttpsError('unauthenticated', 'User must be authenticated');
      const users = [];
      const listUsersResult = await admin.auth().listUsers();
      listUsersResult.users.forEach(user => users.push({ uid: user.uid, email: user.email }));
      return { users };
    });
    
  2. 在Flutter中调用该函数

    import 'package:cloud_functions/cloud_functions.dart';
    
    Future<void> getAllUsers() async {
      final callable = FirebaseFunctions.instance.httpsCallable('listAllUsers');
      final response = await callable();
      List users = response.data['users'];
      print(users);  // Display the list of users
    }
    

此方法需要 Firebase 管理员访问权限,这在 Cloud Functions 中使用时是安全的。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.