我正在将 firebase 用于我的移动 Android 和 iOS 应用程序,并且我想根据我设置的特定用户属性发送推送通知(推送通知主题不适用于我的用例)。
所以现在当我通过应用程序设置用户属性时,传播该更改需要永远。例如,我确实有一个club设置为 value的属性x。我可以成功地向这些用户发送推送通知。现在,当我将值更改为 时club = y,此更改将永远完成。这意味着发送到的所有通知club = x仍将在这些设备上接收。
要设置用户属性,我使用 firebase_analytics 插件进行颤振,如下所示:
FirebaseAnalytics analytics = FirebaseAnalytics();
analytics.setUserProperty(name: 'club', value: 'some value')
Run Code Online (Sandbox Code Playgroud)
由于我使用用户属性来设置通知设置,因此这种延迟是不可接受的。有谁知道如何使用firebase进行这项工作?或者至少在这些用户属性更新的时间之后有任何保证?我不想使用其他服务,例如 OneSignal 等,但如果可能,请完全留在 Firebase 生态系统中。
dart firebase flutter firebase-cloud-messaging firebase-analytics
我开始在我的 Firebase 项目中使用自定义声明来为我的应用实施基于角色的授权系统。
我将有一个 firebase-admin 脚本,它将{admin: true}为特定用户的uid. 这将帮助我编写更好、更清晰的 Firestore 安全规则。
admin.auth().setCustomUserClaims(uid, {admin: true})
到现在为止还挺好。我的问题是我还需要一个仪表板页面来让我知道哪些用户当前是我的应用程序中的管理员。
基本上我需要一种方法来根据自定义声明查询/列出用户。有没有办法做到这一点?
但也许,是否至少有一种方法可以检查(使用 Firebase 控制台)customUserClaims设置为特定用户的内容?
我当前的解决方案是将该信息(管理员uid's)存储admin-users在我的 Firestore 中的一个集合中,并使该信息与customClaims我设置或撤销的任何管理员保持同步。你能想到更好的解决方案吗?