gpt4 book ai didi

android - Firebase Cloud可用于Android应用程序通知

转载 作者:行者123 更新时间:2023-11-29 23:40:10 25 4
gpt4 key购买 nike

我需要一些有关以下系统的提示:


客户端应用:Android
后端:Firebase云功能
数据库:实时数据库


方案之一如下:


所有用户都在android设备上。
用户通过OAuth2(Google帐户)登录。


User1创建一个要约,并且要约在活动要约列表中“正在等待”。
通知其他用户该更改为活动商品列表。
User2请求要约,并且要约被“请求”
通知其他用户该更改为活动商品列表。
通知用户1用户2的请求
用户1确认/拒绝用户1的请求:

a)确认并且要约已“完成”并从有效要约列表中删除。

b)拒绝,并且要约在活动要约列表中再次“等待”。
通知其他用户该更改为活动商品列表。
通知用户2用户1的确认/拒绝



注意:
系统是特定的且受限制的,因此有效的要约列表将很短,这就是为什么我目前正在考虑通知用户有关列表修改的信息,而不是通知单个要约修改的原因,但是我愿意征求建议。

==========================================

目前,我已经实现了以下内容:


User1创建一个要约,该要约正在“等待”中:


Android应用程式呼叫createOffer(...)Firebase Cloud功能
createOffer(...)将新商品添加到实时数据库的商品列表中。
在活动商品列表级别上触发onWrite(...)实时数据库触发器

在这里我需要提示
User2请求要约,并且要约被“请求”:


Android应用程式呼叫requestOffer(...)Firebase Cloud功能
requestOffer(...)修改实时数据库中的报价。
在活动商品列表级别上触发onWrite(...)实时数据库触发器

在这里我需要提示
在这里我需要提示
用户1确认/拒绝用户1的请求:


a)确认:


android应用程序调用confirnOfferRequest(...)firebase云功能
confirmOfferRequest(...)从活动商品列表中删除商品。
在活动商品列表级别上触发onWrite(...)实时数据库触发器


b)拒绝:


Android应用程式呼叫denyOfferRequest(...)Firebase Cloud功能
denyOfferRequest(...)修改活动商品列表中的商品。
在活动商品列表级别上触发onWrite(...)实时数据库触发器。





在这里我需要提示
在这里我需要提示


=================================

因此,我需要有关通知到android应用程序的提示:
步骤2、4、5、7、8

我想我应该使用FCM,但是:


我发现的Android教程与已弃用的FirebaseInstanceId有关
我不确定我的情况是什么:


主题讯息
设备组
上游消息

我不确定如何通过onWrite(...)实时数据库触发器通知android应用。
仅应向登录用户通知有关活动商品列表更改的信息。
如果不通知用户,则不应通知用户,并且登录时应获得实际状态(有效商品列表)。


=============

@James Poag,谢谢你的提示。我会尽力提供反馈。

我有一些问题:

当我说“通知”时,我并不是在设备的“状态栏”中表示“真实”通知。至少目前的计划是在其内部显示信息的应用程序-我称之为“通知”。似乎更简单。


有理由使用onCreate()而不是onWrite()吗?


目前,我的计划是在创建/更新商品时执行相同的操作,因此我认为onWrite()可以解决这两种情况。
或不 ?


感谢交易提示:)
我想我有“数据”消息,而不是“真实”通知。




我必须阅读有关权限的信息。谢谢。

目前,我以这种方式检查授权:

if (!context.auth) {
return Promise.reject(Error('User is not authenticated.'));
}

最佳答案

下面的要旨是您想使用Admin SDK发送消息。

您可以创建主题,让用户订阅主题,然后向主题发送消息(在上面的同一链接中找到),或者如果用户数量很少,那么您可能只想向数据库中的每个人发送消息。

同样,不要依赖Android中默认的FCM消息处理,使用步骤2中的链接手动将通知发布到用户的任务栏中。




User1创建一个要约,该要约正在“等待”中:


Android应用程式呼叫createOffer(...)Firebase Cloud功能
createOffer(...)将新商品添加到实时数据库的商品列表中。
在活动商品列表级别上触发onWrite(...)实时数据库触发器考虑使用onCreate()而不是onWrite()

使用admin SDK将通知发送给您的应用用户。这将需要发送到组主题或遍历用户数据库并发送到用户的设备令牌。当您的用户使用设备登录时,grab their token from FirebaseMessaging并将其写入保存其个人资料的Realtime数据库。
User2请求要约,并且要约被“请求”:


Android应用程式呼叫requestOffer(...)Firebase Cloud功能
requestOffer(...)修改实时数据库中的报价。在这里,您需要研究transactions,以防止多个用户获得对报价的锁定
在活动商品列表级别上触发onWrite(...)实时数据库触发器

向主题组发送仅data通知。在您的Android应用程序process the data payload中,打开NotificationManager并将先前的通知更新为“ requested”。
*在数据库中创建报价后,请确保包括所有者的设备令牌。这样,当要约状态更改为“请求”时,您可以使用admin sdk向所有者发送通知。 *
用户1确认/拒绝用户1的请求:


a)确认:


android应用程序调用confirnOfferRequest(...)firebase云功能
confirmOfferRequest(...)从活动商品列表中删除商品。
在活动商品列表级别上触发onWrite(...)实时数据库触发器


b)拒绝:


Android应用程式呼叫denyOfferRequest(...)Firebase Cloud功能
denyOfferRequest(...)修改活动商品列表中的商品。
在活动商品列表级别上触发onWrite(...)实时数据库触发器。





**与#4相同,但如果被接受,则使用通知管理器完全取消通知**
当User2触发第3步时,他们应该发送设备令牌作为请求的一部分。这样,当请求被接受时,您的云功能将知道通知谁。




当用户登录设备时,将其令牌发送到主题组。他们注销后,从组中删除令牌(实际注销之前)。

由于所有内容都是通过云功能路由的,因此可以将数据库的权限设置为.read : false, .write : false,然后对于配置文件部分(如果需要)可以添加特殊的.write : auth !== null && auth.user === uid。否则,Admin SDK具有从数据库读取/写入的特殊权限。

另外,当有人调用您的HTTPS函数时,请检查authorization以确保他们已登录Firebase。

关于android - Firebase Cloud可用于Android应用程序通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51927191/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com