Android 在一个应用程序之间共享数据 - 2 个用户

Android Sharing data between one app - 2 users

我开发了一个简单的应用程序 TO-DO 列表应用程序。我在那里创建我的每日计划、每周计划等等。 TODO 列表是离线制作的。现在我想与不同的应用程序用户分享我的 TODO 列表。喜欢关系 MOM-KIDS(一对多)这样妈妈就可以看到她的孩子在做什么。那么有一个问题如何做到这一点?我想以某种方式标记我想将我的每日计划发送给谁。我应该在一些云托管中注册吗?引用某人​​的数据库将其他用户数据插入某人的数据库可能会出现问题(public 规则不可接受)。在我看来,允许 .read 为“管理员”(妈妈)用户设置为真也是一个糟糕的解决方案,因为其他妈妈不能为他们的孩子制定计划。我应该通过广播发送还是遇到这样的问题应该怎么解决?

@编辑 我换成了 Firestore DB,但我仍然不确定如何为存储在 receiverIds 数组中的用户获取权限。

我正在尝试调整 Firestore security rules : searching for a user's id in array in a document 以适应我的情况,但我总是遇到错误。有人能告诉我我做错了什么吗?

service cloud.firestore {
  match /databases/{database}/documents {
    match /user_activity/{ids} {
      allow read, write: if request.auth.uid in get(/databases/{database}/documents/user_activity/{ids}).data.receiverId
    }
  }
}

您好!

最好的方法是使用像 Firebase Firestore 数据库这样的数据库。这将是一个易于实施的解决方案。

对于数据访问规则,您可以使用 Firebase 安全规则 来执行您需要的内容。

例如。在你的情况下,妈妈可以读取数据但不能写入数据,这很容易做到。

以下链接可以帮助您:

Firebase Firestore Introduction

Firebase security rules.

Firebase Firestore Codelab

更新:

好的,所以这是我快速模拟的,试了一下,成功了非常好!

这是结构:

规则如下:

rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
     match /item/{items}{
       allow write : if true;
       allow read :  if request.auth.uid in resource.data.uid;
     }
   }
}  

注意resource.data.uid中的uid指的是document中的数组uid。

下面是结果的屏幕截图:

这里的uid就是输入到数据库数组中的那个。因此,阅读允许

这里uid不是数据库数组中的uid。因此,阅读不允许