不同用户类型的 Firebase Auth

2024-04-13

我正在开发一个有两个应用程序的项目 - 一个用于“请求者”用户,一个用于“响应者”用户,并且我目前正在使用 Firebase 进行身份验证。用户使用电子邮件/密码组合登录,这是问题的根源:

问题在于用户冲突 - 因为身份验证模块连接到 Firebase 控制台中的单个项目中,响应者可以从技术上登录到请求者应用程序,反之亦然,这会导致问题,因为后端出现问题 - API 不允许它们访问,因为数据库在表中找不到它们的数据,并且应用程序行为不稳定(读取:崩溃)。

我知道有类似的问题(Android - Firebase - 不同类型的用户登录 https://stackoverflow.com/questions/46372780/android-firebase-different-types-of-users-login)但我真正想问的是是否有某种方法可以避免这种令人讨厌的情况。我想到的一些选项是:

  1. 在数据库中进行手动检查,如果用户类型不正确,则将其注销 -可以完成,但很乏味并且耗费数据/时间。
  2. 在 Firebase 中为每种用户类型创建不同的项目 -这是低效的 - 当我使用 Firebase 进行身份验证时,我使用 Mongo 进行存储,所以这并不重要,但是如果/当我切换到 Firebase 进行存储时,那么我的服务器代码将变得复杂、缓慢且混乱,因为必须访问不同的数据库每个访问请求者和响应者数据
  3. 推出我自己的授权 -感觉是一个坏主意,但它有助于解决眼前的问题,同时打开不同的蠕虫罐,因为我还需要实施 Firebase Cloud Messaging
  4. 切换到另一个身份验证提供商 -我愿意在这里接受建议

我还预计响应者可以创建帐户并使用请求者应用程序的情况,在这种情况下会发生冲突并需要解决 - 我可以禁止响应者使用相同的电子邮件 ID 作为请求者登录,但是可能无法满足用户可能(并且愿意)希望使用一个电子邮件 ID 处理所有事情的现实场景。

任何人都可以帮助我采取正确的方法和/或解决这个问题的任何提示/解决方案吗?

----- 2017 年 12 月 14 日编辑 --------

我还在同一项目下列出了两个应用程序(附有屏幕截图),所以我的下一个问题是,当请求者用户尝试登录/注册为响应者时,是否会发生冲突,反之亦然?


考虑使用自定义用户声明并通过数据库规则强制访问,或者如果您使用自己的端点,则通过解析 ID 令牌并检查其声明来强制访问。 Firebase 管理 SDK 提供了执行此操作的工具:https://firebase.google.com/docs/auth/admin/custom-claims https://firebase.google.com/docs/auth/admin/custom-claims

Firebase Auth 团队还致力于向客户端公开这些声明,以简化所需的 UI 更改。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

不同用户类型的 Firebase Auth 的相关文章

随机推荐

  • 动态包含/排除 Gitlab Pipeline 中的作业

    我有一个有几个阶段的管道 detect test build deploy The detect阶段检测应用程序的类型和test and build阶段的作业根据计算结果包含或排除detect The detectstage 将其值写入名为
  • 如何在 webkit 浏览器中访问粘贴的文件? (如谷歌浏览器)

    如果能够在 Stack Exchange 上粘贴图像而不是干扰文件对话框 那将非常方便 类似的功能在这里实现了 是 但是仅适用于 Webkit 浏览器 https meta stackexchange com a 233874 209994
  • 快速获取剪贴板更改通知

    swift 中有剪贴板更改事件吗 当 iOS 应用程序中剪贴板发生更改时 我如何收到通知 谢谢 这里有一个可以复制的迅捷5 0 version NotificationCenter default addObserver self sele
  • 使用反应登录表单在 Spring Boot 中对用户进行身份验证

    我已将 spring security 添加到我的项目中 并且正在尝试进行用户身份验证 我正在使用 CrudRepository 来查找用户并验证详细信息是否正确 我已经能够使用开箱即用的弹簧登录页面让它工作 我的问题是我想通过我的反应登录
  • 如何实现带有可折叠搜索栏的 SliverAppBar

    这就是我想做的 https i stack imgur com f9SYe jpg 这是 iOS 上非常常见的 Widget 这是我的代码 return Scaffold backgroundColor Colors white body
  • 将 CMake 与具有钻石依赖项的库一起使用

    假设我有四个独立的项目 三是图书馆 Common Foo and Bar 其中之一是可执行文件 App Both Foo and Bar依赖于公共库 并且App依赖于取决于Foo and Bar 此外 其中一些项目有一些脚本需要运行来生成一
  • Linux - 嵌套中断[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 Linux 是否使用嵌套中断 我的意思是 例如 当从任何设备提供中断服务时 可以允许在此例程中进一步中断吗 或者它涉及上半部和下半部 ED
  • '\b' 不会在 PyCharm 控制台中打印退格键

    我正在尝试更新 PyCharm 控制台中的最后一行 说吧 我打印a然后我想把它改成c 但是 我遇到了以下问题 当我跑步时 print a bc 它打印 a c 而所需的输出 这也是我在 Windows 控制台中看到的 是 c 有没有办法将光
  • 使用 istream::seekg 太贵了吗?

    在c 中 使用istream seekg操作的成本有多高 编辑 我可以通过查找文件和读取字节来逃脱多少惩罚 频率与偏移量的关系如何 我正在解析一个大文件 4GB 我想知道是否有必要尝试合并我的一些搜索调用 我认为文件位置差异的大小起着一定的
  • Oracle 中的子字符串索引

    我刚刚发现我们现在的数据库设计效率有点低SELECT我们执行最多的查询 IBAN 是根据国家特定格式的位置坐标 因为我们主要是表演JOINs and WHERE在某些表中 IBAN 列的精确子字符串上 我的问题是关于为列的子字符串分配索引
  • 如何关闭 Netty 库调试输出?

    我正在使用 Netty 通过 Ning async HTTPlibrary http www ning com code 2010 03 introducing nings asynchronous http client library
  • 使用自定义架构重定向到外部 URL

    我有 Asp net MVC4 项目 如果调用指定的操作 我想重定向到外部 url URL 应该有自定义架构 例如没有http but myschema 我知道要重定向到 google com 我可以使用return Redirect ht
  • CMake 目标取决于已安装的目标

    我已经搜索过这个 但也许我使用了错误的措辞 我希望在安装另一个目标后构建一个 CMake 目标 举一个具体的例子 我希望我的测试包含库版本并与其链接 其目录结构类似于实际安装 目录结构 project lib first library h
  • 在 Python 3.6+ 中按值对字典进行排序

    我一直在寻找一种用Python中的值对字典进行排序的方法 经过几次尝试 结果如下 a
  • 与 Derby 有其他连接(只读)

    我想要做什么 我的应用程序与 Derby DB 具有完整连接 并且我想并行地浏览数据库 只读 使用不同的工具 我不确定 Derby 在内部实际上是如何工作的 但我知道我只能有 1 个到 Derby DB 的活动连接 但是 由于数据库仅由硬盘
  • 仅包含 1 个数字的示例[重复]

    这个问题在这里已经有答案了 我正在尝试创建一些模拟数据 为了创建聚类数据 我已指定处方者是否在一个或多个本地卫生区域 LHA 工作 现在 我正在尝试根据患者的 LHA 为患者指定一名处方医生 其代码位于以下代码块中 for i in seq
  • 从 XML 创建实体

    我有以下 XML 结构
  • Django 中的脏字段

    在我的应用程序中 我需要在保存模型时保存更改的值 旧的和新的 有示例或工作代码吗 我需要这个来预先审核内容 例如 如果用户更改了模型中的某些内容 那么管理员可以在单独的表中查看所有更改 然后决定是否应用它们 我发现阿明的想法非常有用 这是我
  • Underscore.js - 在嵌套 Json 中进行过滤

    我想获取所有值 其中category id 1 所以我应该得到 2 个结果 我的 JSON 看起来像这样 var test id 1 name name1 value value1 category id 1 name category1
  • 不同用户类型的 Firebase Auth

    我正在开发一个有两个应用程序的项目 一个用于 请求者 用户 一个用于 响应者 用户 并且我目前正在使用 Firebase 进行身份验证 用户使用电子邮件 密码组合登录 这是问题的根源 问题在于用户冲突 因为身份验证模块连接到 Firebas