How to block users on Firebase in a social media app? for iOS(如何在社交媒体应用程序中屏蔽Firebase上的用户?对于iOS)
问题描述
enter image description here我的应用程序使用率约为90%,并且已准备好将其发布,以便可以发布以进行测试。
我被苹果拒绝了,因为我没有一个非常重要的功能:--用户屏蔽辱骂用户的机制。
我已经有一个可以跟踪其他用户的功能,但我被困在如何阻止访问上,因此当一个用户阻止另一个用户时,他们看不到与刚刚阻止他的那个用户相关的任何东西。他们无法在搜索、新消息和帖子中看到自己的个人资料。
我不知道从何说起。如果你开发过一款用户内容生成的应用程序。我甚至不知道从何说起。我已经坚持了3个星期了,现在我绝望了。
//我如何实现这样的内容?
我的安全规则是基本的。
{
"rules": {
".read": "auth != null",
".write": "auth != null"
} )
到目前为止,我显示信息的方式是,用户只需使用电子邮件和用户名和密码登录,这就创建了允许他们登录到应用程序并查看与应用程序相关的所有内容的用户。
我的节点也是
Messages
评论 标记的帖子 以下是 喜欢 员额 用户-消息 用户
推荐答案
有很多解决方案可以解决此问题。一种方法是在数据库中为被阻止的用户设置一个单独的节点。在每个用户下,您可以列出被屏蔽用户的uid
,值为true。值是什么并不重要--这只会使搜索谁被阻止变得更容易。例如,假设您的数据库结构如下:
users:
uid1:
my data: {
// some stuff here
}
uid2:
my data: {
// some stuff here
}
blocked:
uid1:
uid8: true,
uid3: true
uid2:
uid1: true
在上例中,uid1
屏蔽了uid8
和uid3
,依此类推。
然后,您可以调整您的规则,以验证用户是否可以阅读他们是否经过身份验证,并且在该用户的阻止列表中找不到他们的uid
。
{
"rules": {
"users": {
"$user_id": {
// only messages from the last ten minutes can be read
".read": "auth != null && !root.child('blocked/'+$user_id+'/'+auth.uid+'/true').exists()",
".write": "$user_id === auth.uid"
}
}
}
}
有关安全规则的一些示例,请参阅documentation安全规则。
这篇关于如何在社交媒体应用程序中屏蔽Firebase上的用户?对于iOS的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!