Android Firebase+;在将此用户添加到列表之前,请向用户请求权限

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的android应用程序。实际上,我是Firebase的新手,我正在搜索如何实现以下功能。我找不到一个具体的答案或者我找到的答案,我不能很好地理解它们。如果有人能回答,我将不胜感激。:)

功能:

功能1:在我的应用程序中,当用户A添加用户B时。我希望用户B收到一个通知,比如“用户A希望添加您为朋友”。如果用户B确认了,则只有在那时,用户B才能添加到用户A的“朋友列表”中,反之亦然。如果用户B拒绝,则应该发生相反的情况。此外,当用户B将用户A从“朋友列表”中删除时,他们两个都应从对方的“朋友=列表”中删除,并发出通知

功能2:我希望现在也发生同样的情况,但这次我希望用户Z成为用户B的管理员,现在当用户A想要添加用户B时。通知应该发送给用户Z和用户B。但是拒绝或接受它应该仅取决于用户Z。这里是在用户A和用户Z之间


我想知道是应该在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安全性

您需要设置安全规则,以强制任何用户都不能直接将自己添加为好友,等等。。所以也要使用它们