【问题标题】:Firebase Admin SDK: How to use listUsers() function as Observable combining recursive calls?Firebase Admin SDK:如何使用 listUsers() 函数作为 Observable 结合递归调用?
【发布时间】:2019-10-07 10:04:33
【问题描述】:

如何将 Firebase Admin SDK listUsers() 函数用作 RXJS observable?

我可以在listUsers 上使用from RXJS 函数来返回一个observable,但挑战是listUsers 批量返回用户。这批用户怎么检索再合并?

【问题讨论】:

标签: javascript firebase rxjs firebase-admin


【解决方案1】:

Firebase Admin SDK 函数 listUsers 可以使用返回 Observable 的函数进行包装。

然后flatMapforkJoin 可用于将递归函数调用组合到一个用户数组中。

import { forkJoin, from, of } from 'rxjs';
import { flatMap, map } from 'rxjs/operators';


function myListUsers(maxResults = 1000, pageToken = null) {
  return from(admin.auth().listUsers(1000, pageToken));
}


function listAllUsers(nextPageToken) {
  myListUsers(1000, nextPageToken).pipe(
    flatMap(listUsersResult => forkJoin([
      of(listUsersResult.users),
      listUsersResult.pageToken ? listAllUsers(listUsersResult.pageToken) : of(null)
    ])),
    map( ([userList1, userList2]) => [...userList1, ...userList2])
  )
}


listAllUsers().subscribe(
  allUsers => console.log(allUsers);
)

请注意,最后一个数组条目将是 null

【讨论】:

    猜你喜欢
    • 2018-07-04
    • 2020-05-17
    • 2021-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-20
    • 1970-01-01
    相关资源
    最近更新 更多