Android Firebase+;在将此用户添加到列表之前,请向用户请求权限
我正在创建一个使用Firebase的android应用程序。实际上,我是Firebase的新手,我正在搜索如何实现以下功能。我找不到一个具体的答案或者我找到的答案,我不能很好地理解它们。如果有人能回答,我将不胜感激。:) 功能: 功能1:在我的应用程序中,当用户A添加用户B时。我希望用户B收到一个通知,比如“用户A希望添加您为朋友”。如果用户B确认了,则只有在那时,用户B才能添加到用户A的“朋友列表”中,反之亦然。如果用户B拒绝,则应该发生相反的情况。此外,当用户B将用户A从“朋友列表”中删除时,他们两个都应从对方的“朋友=列表”中删除,并发出通知 功能2:我希望现在也发生同样的情况,但这次我希望用户Z成为用户B的管理员,现在当用户A想要添加用户B时。通知应该发送给用户Z和用户B。但是拒绝或接受它应该仅取决于用户Z。这里是在用户A和用户Z之间Android Firebase+;在将此用户添加到列表之前,请向用户请求权限,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我正在创建一个使用Firebase的android应用程序。实际上,我是Firebase的新手,我正在搜索如何实现以下功能。我找不到一个具体的答案或者我找到的答案,我不能很好地理解它们。如果有人能回答,我将不胜感激。:) 功能: 功能1:在我的应用程序中,当用户A添加用户B时。我希望用户B收到一个通知,比如“用户A希望添加您为朋友”。如果用户B确认了,则只有在那时,用户B才能添加到用户A的“朋友列表”中,反之亦然。如果用户B拒绝,则应该发生相反的情况。此外,当用户B将用户A从“朋友列表”中删除时
我想知道是应该在Firebase数据库中使用触发器来实现这一点,还是应该使用Firebase的“安全功能”。我相信有办法做到这一点。我感谢你的帮助 对于一个问题来说,这是相当多的事情要做。我会把它分解成一些组件,然后从那里开始 添加用户/接受/拒绝/删除
root/users/userId
root/userFriends/userId/friendUserId:true
root/userFriendRequests/userIdReceiver/userIdSender:true
使用索引适配器列出好友请求
如果用户接受:
delete /userFriendRequest/userId/theirUserId
create /userFriends/myUserId/theirUserId:true
create /userFriends/theirUserId/myUserId:true
如果用户拒绝:
delete /userFriendRequests/myUserId/theirUserId
如果用户删除朋友:
delete /userFriends/myUserId/theirUserId
delete /userFriends/theirUserId/myUserId
create root/requestNotificationDeleted/targetUserId/myUserId:true
发送请求/添加/删除通知
为此,您需要使用Firebase Admin的应用程序服务器
如果删除朋友:
delete /userFriends/myUserId/theirUserId
delete /userFriends/theirUserId/myUserId
create root/requestNotificationDeleted/targetUserId/myUserId:true
使用ChildEventListener侦听requestNotificationDeleted
如果添加了一个孩子,
您有targetUserId和myUserId
- Get the User data for myUserId using ListenerForSingleValueEvent
- Construct a notification using FCM, using the user data.
- Send the notification to targetUserId via token.
- Delete the child you just listened to, as the notification was sent.
您需要在数据库中连接用户ID/令牌,如appserver或firebase
通过相同的逻辑,您可以处理接受、请求等的通知
Firebase安全性
您需要设置安全规则,以强制任何用户都不能直接将自己添加为好友,等等。。所以也要使用它们