internal static async Task ListAllUsersAsync()
        {
            // [START list_all_users]
            // Start listing users from the beginning, 1000 at a time.
            var pagedEnumerable = FirebaseAuth.DefaultInstance.ListUsersAsync(null);
            var responses       = pagedEnumerable.AsRawResponses().GetEnumerator();

            while (await responses.MoveNext())
            {
                ExportedUserRecords response = responses.Current;
                foreach (ExportedUserRecord user in response.Users)
                {
                    Console.WriteLine($"User: {user.Uid}");
                }
            }

            // Iterate through all users. This will still retrieve users in batches,
            // buffering no more than 1000 users in memory at a time.
            var enumerator = FirebaseAuth.DefaultInstance.ListUsersAsync(null).GetEnumerator();

            while (await enumerator.MoveNext())
            {
                ExportedUserRecord user = enumerator.Current;
                Console.WriteLine($"User: {user.Uid}");
            }

            // [END list_all_users]
        }
Beispiel #2
0
        public async Task <ListDataResult <AppUserDto> > ListUsersAsync(string pageToken)
        {
            var    users           = new List <AppUserDto>();
            string nextPageToken   = null;
            var    pagedEnumerable = _firebaseAuth.ListUsersAsync(new ListUsersOptions {
                PageToken = pageToken
            });
            var responses = pagedEnumerable.AsRawResponses().GetAsyncEnumerator();

            while (await responses.MoveNextAsync())
            {
                ExportedUserRecords response = responses.Current;
                nextPageToken = response.NextPageToken;
                foreach (ExportedUserRecord user in response.Users)
                {
                    // user.UserMetaData.LastSignInTimestamp
                    users.Add(user.To <AppUserDto>());
                }
            }
            return(new ListDataResult <AppUserDto>(nextPageToken, users));
        }
        public async void Get()
        {
            PrivateKeyModel privateKey = new PrivateKeyModel()
            {
                AuthProviderX509CertUrl = Constants.AuthProviderX509CertUrl,
                AuthUri           = Constants.AuthUri,
                ClientEmail       = Constants.ClientEmail,
                ClientId          = Constants.ClientId,
                ClientX509CertUrl = Constants.ClientX509CertUrl,
                PrivateKey        = Constants.PrivateKey,
                PrivateKeyId      = Constants.PrivateKeyId,
                ProjectId         = Constants.ProjectId,
                TokenUri          = Constants.TokenUri,
                Type = Constants.Type
            };
            var privateKeyJson = JsonConvert.SerializeObject(privateKey);

            if (FirebaseApp.DefaultInstance == null)
            {
                FirebaseApp.Create(new AppOptions()
                {
                    Credential = GoogleCredential.FromJson(privateKeyJson)
                });
            }

            // Start listing users from the beginning, 1000 at a time.
            var pagedEnumerable = FirebaseAuth.DefaultInstance.ListUsersAsync(null);
            var responses       = pagedEnumerable.AsRawResponses().GetAsyncEnumerator();

            while (await responses.MoveNextAsync())
            {
                ExportedUserRecords response = responses.Current;
                foreach (ExportedUserRecord user in response.Users)
                {
                    if (user.CustomClaims.ContainsKey("Role"))
                    {
                        FirebaseUsers.Add(
                            new FirebaseUserModel
                        {
                            UId           = user.Uid,
                            DisplayName   = user.DisplayName,
                            Email         = user.Email,
                            Role          = user?.CustomClaims["Role"]?.ToString(),
                            EmailVerified = user.EmailVerified
                        }
                            );
                    }
                    else
                    {
                        FirebaseUsers.Add(
                            new FirebaseUserModel
                        {
                            UId           = user.Uid,
                            DisplayName   = user.DisplayName,
                            Email         = user.Email,
                            EmailVerified = user.EmailVerified
                        }
                            );
                    }
                }
            }
        }