根据firebase / firestore文档在应用程序图标徽章通知中反应本机
Posted
技术标签:
【中文标题】根据firebase / firestore文档在应用程序图标徽章通知中反应本机【英文标题】:React native in app icon badge notifications according to firebase / firestore documents 【发布时间】:2021-03-04 06:27:30 【问题描述】:我正在使用
反应原生 用于推送通知的 OneSignal 反应导航 React Native Elements(徽章组件) React 原生矢量图标 Firebase,Firestore 作为后端所以,在我的应用程序中,我的 topRight Stack Screen 中有两个按钮
<Stack.Screen
name="CreateEvent"
component=CreateEvent
options=
headerRight: () => (
<View style= flexDirection: "row", alignItems: "center", marginRight: 10 >
<TouchableOpacity
onPress=() => navigation.navigate("InvitationsNav") >
<Badge
status="error"
containerStyle= position: 'absolute', top: -4, right: -4
value="10"/> // <--- hardcoded value
<IconMaterialIcons
name="event"
color=Constants.colors.primaryColor
backgroundColor="transparent"
size=30
style= paddingHorizontal: 10 />
</TouchableOpacity>
<TouchableOpacity
onPress=() => navigation.navigate("nl_Notifications") >
<Badge
status="error"
containerStyle= position: 'absolute', top: -4, right: -4
value="2"/> // <--- hardcoded value
<IconIonicons
name="notifications-outline"
color=Constants.colors.primaryColor
backgroundColor="rgba(52, 52, 52, 0.0)"
size=30
style= paddingHorizontal: 10 />
</TouchableOpacity>
</View>)
在最后一张图片上,这些值是硬编码的。
我想根据未见过的 Firestore 文档动态设置这两个值。我的意思是,如果用户没有看到最后的通知或事件,请在相应的徽章上设置未看到的文档数量。
如果该特定用户有 3 条新通知,我想以编程方式在徽章上设置 3。
或者,如果该用户有 6 个未见过的事件,我想在徽章上设置该值。
知道如何解决这个问题吗?
我想一个解决方案是在 firestore 文档上添加一个标志,例如:
seen: false
当用户按下通知或事件时,将该标志更改为 true,但使用此解决方案,我必须使用 seen == false 预加载 firestore 文档,我不确定这是一个经济的解决方案。
有没有办法仅通过 OneSignal 推送通知设置这两个值?或者其他解决方案?
提前致谢!!
【问题讨论】:
【参考方案1】:你在这里提到的:
但使用此解决方案,我必须使用 seen == false 预加载 firestore 文档,我不确定这是一个经济的解决方案。
此说法不正确,firestore 中的文档之间不需要具有相同的结构,因此您可以将该逻辑仅应用于新文档(或者您可以将其添加到旧文档中仅用于数据一致性,因为文档将永远不要“看不见”,在这种情况下,我认为这不是必需的)。
我不熟悉将 OneSignal 用于推送通知,所以我不能说是否有更好的解决方案使用它,但就 Firestore 解决方案而言,因为您仍然需要以某种方式与 Firestore 交互要检查文件是否仍然看不见,标志选项是一个非常好的解决方案。
【讨论】:
@WytrzymałyWiktor 帮助很大以上是关于根据firebase / firestore文档在应用程序图标徽章通知中反应本机的主要内容,如果未能解决你的问题,请参考以下文章
Firebase Firestore - 使用多个“数组包含”过滤数据
无法使用 SwiftUI 从 Firebase / Firestore 中删除文档
Firebase 存储规则在 Firestore 文档上查找数据? [复制]
为啥 Firebase 数据库(Firestore)不添加文档