Firebase 自定义声明不会传播

2024-03-30

我正在使用 angularfire2 开发 Angular6 应用程序。我将角色设置为用户创建中的自定义声明,但它似乎没有传播。

当我创建用户时,我将用户 ID、业务 ID 和角色发送到云功能:

出价>业务ID

尿素 > 作用

req.body.uid > 用户 ID

  const customClaims = {
    roles: { [bid]: urole }
  }
  admin.auth().setCustomUserClaims(req.body.uid, customClaims)
    .then(result => {
      res
        .status(200)
        .send()
    })

问题是当对云函数的调用完成时,我想将用户重定向到要求用户设置自定义声明的路由,但它失败了。经过一些调试,我发现如果运行:

this.angularFireAuth.auth.currentUser.getIdTokenResult(true).then(result => {
      return result.claims.roles
    })

在调用云函数“result.claims.roles”之后立即未定义,但是如果我刷新页面,“result.claims.roles”将具有我之前设置的数据。

我已经尝试过重新加载方法和 getIdToken(true) 但我遇到了同样的问题。

有没有办法避免刷新页面并获取自定义声明?

谢谢你!


用户登录后,他们会获得一个 ID 令牌,有效期约为一小时。如果您设置自定义声明,他们的(服务器端)配置文件会立即更新,但他们的 ID 令牌不会自动更新。因此,您需要刷新他们的 ID 令牌才能获取新的自定义声明。

据我所知,这个 ID 令牌只能通过调用来刷新getIdTokenResult如果已经过期。如果这是原因,请致电user.reload() https://firebase.google.com/docs/reference/js/firebase.User#reload and then获取 ID 令牌应该会为您提供更新的声明。

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

Firebase 自定义声明不会传播 的相关文章

  • 浏览器视口大小(以设备像素为单位)

    Goal 我希望 Flash 能够获得有关浏览器视口宽度和高度 以设备像素为单位 的准确信息初始化 调整大小或浏览器缩放事件时 规格 我需要将 flash 嵌入到在 chrome safari firefox 等中运行的 html 页面中
  • 如何在没有 jQuery 的情况下删除 Javascript 中的元素

    我试图通过以下方式从 DOM 中删除 Div a 标签嵌套在其中 我想我正在寻找的是 jQuery 的纯 Javascript 版本 div remove 这是html设置 div a href Click me to remove the
  • 本地推送通知到在应用程序内运行 JS 代码的 Win8 Live Tile

    我正在尝试将更新发送到我的应用程序的磁贴 当应用程序运行时 这可以正常工作 例如 当用户单击按钮时 我可以轻松地将磁贴更新通知发送到磁贴 我无法解决的是当应用程序无法运行时如何更新磁贴 我找到的唯一选择是使用以下命令从远程 Web 服务器拉
  • 按下回车键时不刷新页面

    我遇到了一些问题 只要表单中有输入 回车键就会触发页面刷新 下面的代码 如果按下回车并且文本区域 input 中没有输入任何文本 则不会刷新页面 但是如果按下回车并且 input中有输入或者光标位于文本区域 我不确定是什么触发了它 因为 s
  • 如何使用 Greasemonkey 监视静态 HTML 页面的更改?使用哈希?

    我希望我的 Greasemonkey 脚本仅在其访问的静态页面具有与以前完全相同的内容时运行 现在我可以设置一个包含该页面哈希的变量 我正在寻找一种动态散列页面的方法 以便我可以将我的散列与生成的散列进行比较 关于如何即时实现散列的任何想法
  • JavaScript 继承;调用和原型

    要在Javascript中实现继承 通常需要执行以下两个步骤 假设我有一个基类 Animal var Animal function name this name name 我现在想从中派生一个子类 Dog 所以我想说 var Dog fu
  • 如何通过单击链接来更改 div 的内容?

    这是我的网页的 修改后的 jsfiddle 它还有很多 而且定位是正确的 与此相反 http jsfiddle net ry0tec3p 1 http jsfiddle net ry0tec3p 1 a href class btn1 st
  • 如何在 Android 模块中使用 FirebaseAuth

    我正在开发一个聊天库 我想在其中显示登录用户的对话 制作该库的原因是我想将其集成到多个项目中 我现在面临的问题是FirebaseAuth表示用户尚未登录 FirebaseAuth getInstance mFirebaseApp getCu
  • 如何使用 Javascript 设置查询字符串

    有没有办法使用 javascript 设置查询字符串的值 我的页面有一个过滤器列表 单击该列表时 它将更改右侧的页内结果窗格 我正在尝试更新 url 的查询字符串值 因此如果用户离开页面 然后单击 后退 按钮 他们将返回到最后一个过滤器选择
  • onclick 事件中未调用函数

    我想在每个 YouTube 链接的末尾添加一些 HTML 以在 litebox 中打开播放器 到目前为止 这是我的代码 document ready function var valid url new RegExp youtube com
  • 将 Firebase 云消息传递与 Windows 应用程序结合使用

    我在 Android 和 iOS 应用程序中使用 Firebase Cloud Messaging 但是我还有此应用程序的 Windows Mac OS 版本 我想保留相同的逻辑 我知道 Firebase Cloud Messaging 可
  • 使用 JavaScript 移动页面上的按钮

    我的按钮可以移动 但奇怪的是 我无法弄清楚偏移是否有问题 我希望我的按钮随着鼠标光标移动 但现在它的移动方式不是我想要的 有时它会消失 另外 创建的新按钮是重叠的 我不知道如何解决这个问题并拥有更好的外观 var coorA var coo
  • 如何正确取消引用然后删除 JavaScript 对象?

    我想知道从内存中完全取消引用 JavaScript 对象的正确方法 确保删除时不会在内存中悬空 并且垃圾收集器会删除该对象 当我看这个问题时在 JavaScript 中删除对象 https stackoverflow com questio
  • 改变 JavaScript 中的顶部填充

    以下是我在 css 中设置顶部填充的方法 body font size font size px margin 0 padding 100px 0 20px 0 width 100 important 如何使用最简单的 javascript
  • LeafleteachLayer函数不会迭代所有Layer

    使用 GeoJSON 数据数组创建一些标记 getJSON GetLocationsServlet function data L geoJSON data onEachFeature onEachFeature addTo mymap G
  • 使用 Javascript 设置 cookie [重复]

    这个问题在这里已经有答案了 我正在尝试构建我的第一个移动应用程序 它需要连接到我的 mysql 数据库并使用 json 返回数据 这很好 目前我有一个登录系统 一旦确定用户名和密码存在 它就会返回一条成功消息 对于下一步 我想在我的页面上使
  • Rails 3.1+ 的 Jasmine 与 Mocha JavaScript 测试 [已关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我对茉莉花有经验并且非常喜欢它 有谁有 Jasmine 和 Mocha 的经验 特别是 Rails 的经验吗 我想知道是否值得转用 我已经在 J
  • Highcharts jQuery 渲染问题 - 所有浏览器

    我在尝试使用构建堆积柱形图时遇到了一个奇怪的问题高图表 http www highcharts com 当图表呈现时 在您调整浏览器大小之前 不会显示列无论如何 导致图表重绘 我认为 图表的其余部分显示 轴 标题等 但不显示列本身 我在 I
  • 使用 Enzyme 测试 `React.createRef` api

    我想测试下面的类 它使用React createRef api 不过 快速搜索并没有发现任何这样做的例子 有人成功过吗 我该如何嘲笑裁判 理想情况下我想使用shallow class Main extends React Component
  • 如何通过索引访问 JSON 对象中的字段

    我知道这不是最好的方法 但我别无选择 我必须通过索引访问 JSONObject 中的项目 访问对象的标准方法是只写this objectName or this objectName 我还找到了一种获取 json 对象内所有字段的方法 fo

随机推荐

  • Hibernate java.lang.NoSuchMethodError: > org.hibernate.integrator.internal.IntegratorServiceImpl.

    在我的 jax rs 上使用 hibernate 我收到此错误 HTTP 错误 500 访问 services dateTest 时出现问题 原因 Server Error Caused by java lang ExceptionInIn
  • 字符串连接错误

    我遇到了语法错误 我承认这是一个语法错误 但我有点好奇why这是一个语法错误 这完全按照您的预期工作 0 9 each n puts n to s 2 n 2 to s 这会引发错误 0 9 each n puts n to s 2 n 2
  • 使用把手解释 html 字符串但转义脚本标签

    我为我的页面引入了一串 html 并且我认为除了脚本标记之外它是 html 安全的 我知道三重大括号会转义 html 那么省略任何脚本标签的步骤是什么 例子 var foo h1 Foo h1 p bar p 然后在我的 hbs 中 foo
  • Google Drive 实时和 Angular 魔法

    我正在观看 YouTube 视频作者 Steve Bazyl 关于驱动器实时 API 的介绍 他提到使用实时和角度框架就像魔法一样 我已经开始研究它会是什么样子 但我还没有看到它的魔力 我很清楚 我可能不是这两个方面的专家 并且遗漏了一些小
  • 如何改进使用 Textmate for Ruby on Rails、HTML、CSS 和 Javascript 的方式?

    我使用最新版本的 textmate 来满足我所有的 Rails 开发需求 但我觉得我没有充分利用这个软件的可能性 我只安装了 Ruby on Rails 捆绑包 并且几乎不使用任何片段 快捷方式 为了在 Web 开发环境中充分利用我的文本伙
  • 为什么这个简单的 C 程序被检测为病毒?

    我写了这个程序 include
  • Chrome 41:按下后退按钮时强制重新加载[重复]

    这个问题在这里已经有答案了 我正在尝试类似的事情 按后退按钮时强制重新加载 刷新 https stackoverflow com questions 9071838 force reload refresh when pressing th
  • 在 C# 中使用 iTextSharp 在 PDF 中添加多个数字签名

    我已经使用 iTextSharp Dll 实现了数字签名 以使用单个签名对 PDF 文件进行签名 现在 我想在之前或已经进行数字签名的 PDF 中添加另一个数字签名 但在验证一个签名时出现错误 如何在一份 PDF 中添加多个数字签名并验证所
  • 宏可以从其参数中删除字符吗?

    是否可以定义一个宏来修剪传入的字符串参数的一部分 例如 can this be defined define MACRO o int main printf MACRO ObjectT prints Object not ObjectT 宏
  • (rails) 如何验证上传的 .txt 文件是否不是图像文件?

    我有一个上传文本文件字段 我计划用它来将文件保存在某个地方 然后将文件的位置存储在数据库中 但是 我想确保他们上传的文件是 txt 文件 而不是图像文件 我想这会发生在验证步骤中 如何验证这样的事情呢 另外 如何获取上传文件的文件名 我总是
  • Golang:变量参数

    当我编译以下程序时 func myPrint v interface fmt Println Hello v func main myPrint new world 我收到编译错误 too many arguments in call to
  • 在java中为八通道声卡选择输出线

    编辑 我现在使用杰克 杰克音频连接套件 请参阅下面的答案 我的 Raspberry Pi 上有一个带有 8 个输出通道 四个立体声通道 的声卡 即 Octosound 卡 我想要做的是选择将声音路由到的通道之一 使用此代码我打印声卡的信息
  • 使用 EntityTypeConfiguration 时的抽象域模型基类

    是否有一些技巧可以获取基本对象属性的中央映射 使用 EntityTypeConfiguration 时抽象类是否有一些简单的模式 非常感谢任何提示 我无法声明一个类 Public class BaseEntityConfig
  • 错误:没有 ChildrenOutletContexts 的提供者[重复]

    这个问题在这里已经有答案了 我无法以任何方式在 Angular 5 中使用角度 材质 我跟着这个简单教程 https coursetro com posts code 113 How to Build an Angular 5 Materi
  • jquery选择器数组

    我遇到添加到购物篮的问题 有些产品有颜色 尺寸等选项 我绘制了颜色 尺寸的选择框和数量的输入
  • 将每秒位数 (bps) 转换为人类可读的大小格式

    我如何在 iOS 中将每秒位数 bps 转换 计算为可读大小格式 例如 10 Mbps 7 Gbps 5 Tbps 4 Pbps 3 Ebps 等 Best Objective C NSString convertBitrateToHuma
  • 在 C# .NET 4.5 中使用 SAML 2.0

    我正在尝试使用纯 NET 无外部类 控件 帮助程序 来创建 SAML 消息 我在互联网上找到了一些代码 这就是我所拥有的 private static SamlAssertion createSamlAssertion Here we cr
  • 如何从 Angular 中的 SVG 图标生成 webfont

    我有一些 SVG 图标 但我想在我的项目中使用它们作为字体 有人知道如何在角度项目中将图标作为字体导入吗 这个网址里有一个答案 https www npmjs com package webfonts generator https www
  • 通过 Azure Runbook 部署 ARM 模板

    我按照 Microsoft 文档使用 Runbook 将模板部署到 azure 中 但是我看不到标题下脚本的参数来自哪里 创建 PowerShell Runbook 脚本 完整指南在这里https learn microsoft com e
  • Firebase 自定义声明不会传播

    我正在使用 angularfire2 开发 Angular6 应用程序 我将角色设置为用户创建中的自定义声明 但它似乎没有传播 当我创建用户时 我将用户 ID 业务 ID 和角色发送到云功能 出价 gt 业务ID 尿素 gt 作用 req