gpt4 book ai didi

android - 使用 Realm Mobile Platform 在应用程序用户之间共享数据

转载 作者:行者123 更新时间:2023-11-30 00:33:11 24 4
gpt4 key购买 nike

我对用户访问其他用户创建的数据有疑问。我将在下面通过案例研究进行解释。

我正在使用 Realm 移动平台。该应用程序使用 Realm Auth 允许用户通过电子邮件、谷歌和 Facebook 帐户注册。此时我正在使用 REALM_URL: ...":9080/~/name".

我将尝试通过以下示例来解释我想要实现的目标。想象我有 UserA 和 UserB。一旦用户在应用程序中注册(使用 SyncUser),他们将被重定向到项目 Activity 。每个用户都可以创建自己的项目。在 Realm Mobile Platform(Realm Mobile Database)之前,用户数据存储在用户设备中。现在,因为我在 REALM_URL 中使用“~”,所以当用户进入项目 Activity 时,该 Activity 会请求并显示该用户的所有现有项目。

该应用还有另一个具有搜索功能的 Activity ,用户可以在其中搜索公共(public)项目。例如,UserA 公开 Project1。 UserB 应该能够找到 Project1 并关注它,或者要求所有者成为贡献者。一旦 UserB 关注或作为贡献者获得访问权限,Project1 应显示在 UserB 的项目 Activity 中。

问题是如何使这成为可能。

选项 A:为所有用户使用一个独特且通用的 Realm 。从 REALM_URL 中删除“~”并将不同的字段(如“ownerID”)添加到项目 RealmObject,并将订阅的项目列表添加到用户 RealmObject。这将允许用户查询项目 Activity 中的所有项目(拥有和订阅)并在搜索 Activity 中搜索公共(public)项目。

选项 B:使用两个 Realm ,一个私有(private) Realm 用于用户数据,一个公有 Realm 用于项目。私有(private)将有一个包含“~”的 REALM_URL,而公共(public)将是绝对的。稍后,当新用户注册时,应用程序将通过访问控制授予权限(mayRead、mayWrite、mayManage)。

哪个是更好的选择?还有其他更好的选择吗?谢谢

最佳答案

您的问题的答案是,这取决于。 Realm Mobile Platform (RMP) 将自动处理您所有的数据共享、冲突解决和跨用户同步。通过这种方式,RMP 充当服务器和单一事实来源。

选项 A 和选项 B 都需要这个单一的事实来源和一些用户访问控制知识。

让我们来看看每个选项的优缺点。

选项A:

  • 优点
    • 只有一个数据库,冲突解决由Realm完成
    • 移动端的工作量大大减少,您只需聆听服务器
  • 缺点
    • 可能难以进行用户访问控制

选项B:

  • 优点
    • 用户的隐私数据完全独立
  • 缺点
    • 你将负责编写本地数据库与服务器之间的数据冲突解决方案
    • 由于存储多个数据库,您的应用很可能会更大。

根据我的经验,自己处理数据库冲突解决方案确实很痛苦。到目前为止,OptionA 似乎是您更好的选择。

关于android - 使用 Realm Mobile Platform 在应用程序用户之间共享数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43910032/

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