当前位置: 首页 > 知识库问答 >
问题:

使用Realm移动平台在应用程序用户之间共享数据

荀正谊
2023-03-14

我有一个关于用户访问另一个用户创建的数据的问题。下面我将用一个案例来解释。

我使用的是Realm移动平台。该应用程序使用Realm Auth允许用户通过电子邮件、谷歌和facebook帐户进行注册。此时此刻,我正在使用以下URL作为域:。。。“:9080/~/name”。

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

该应用程序还有另一个带有搜索功能的活动,用户可以在其中搜索公共项目。例如,UserA公开Project1。UserB应该能够找到Project1并跟踪它,或者要求所有者成为贡献者。一旦UserB跟随或作为贡献者访问,Project1应该显示在UserB的项目活动中。

问题是如何做到这一点。

选项A:为所有用户使用唯一且通用的领域。从REALM_URL中删除~",并向项目RealmObject和用户RealmObject订阅的项目列表中添加不同的字段,如“ownerID”。这将允许用户在项目活动中查询所有项目(拥有和订阅)并在搜索活动中搜索公共项目。

选项B:使用两个领域,一个私有领域用于用户数据,一个公共领域用于项目。私人将有REALM_URL包括“~",公众将是绝对的。稍后,当新用户注册时,应用程序将通过访问控制授予特权(MayRead、MayWrite、MayManage)。

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

共有1个答案

罗昊空
2023-03-14

你问题的答案是,这要看情况。Realm移动平台(RMP)将自动处理用户之间的所有数据共享、冲突解决和同步。这样,RMP充当服务器和可信单一数据源。

OptionA和OptionB都需要这个单一的真相来源和一些用户访问控制的知识。

让我们来看看每个选项的利弊。

选项A:

  • 专业人士
  • 可能很难进行用户访问控制

选项B:

  • 专业人士
  • 您将负责编写本地数据库和服务器之间的数据冲突解决方案

根据我的经验,自己处理数据库冲突解决确实很痛苦。看来OptionA是你最好的选择。

 类似资料:
  • 问题内容: 我想知道我们是否可以使用新的iOS 8功能在应用程序之间共享数据:应用程序组(使用NSUserDefaults)-还是应用程序组仅在主应用程序及其扩展名之间共享数据? 我实际上在应该在它们之间共享数据的两个应用程序(它们属于同一公司)上启用了“应用程序组”功能。它们也具有相同的“应用程序组”内容(例如group.com.company.myApp)。 这是第一个代码(在Swift中)

  • 我们目前支持英语、德语、西班牙语、意大利语和法语作为语言。我们有一个iOS、Android和Windows Phone应用程序,以及一个HTML/JS Web应用程序。这三款移动应用程序非常相似。它们的屏幕和文本基本相同。每个应用程序都由一个小团队完成,并为所有应用程序并行开发功能。webapp中也使用了相当多的文本。 我们现在面临着如何管理我们的(英语)文本字符串及其翻译的问题。现在,我们有Go

  • 我目前正在规划一个我想构建的移动应用程序,以及一个配套的web应用程序。移动应用程序和Web应用程序将共享通用数据(例如,用户可以在移动应用程序中进行问卷调查,也可以在Web应用程序上进行相同的问卷调查)。 几年前我曾使用Azure创建和托管一个web应用程序,但这是我在移动开发领域的第一次尝试。我正试图理解Azure中托管API的架构。 我到处寻找,但是要么找不到我的问题的明确答案,要么不太理解

  • 这是一个很长的问题,但是否可以通过HTML/JavaScript(例如,独立iOS web应用程序)调用mobile safari中的共享功能? 例如,在一个网页上,用户点击一个链接,然后调用共享到fb、twitter、电子邮件屏幕弹出。

  • 我将为不同云环境(AWS、Azure、google cloud等)中的多个客户部署多(30)个应用程序,并让他们彼此共享数据。我的计划是使用区块链/IPFS技术,每个客户保留一份数据副本,对这些数据的任何更改都会传播到所有节点。 数据可分为两种类型: 每个客户的公共数据由所有应用程序直接共享和访问。 每个客户的私有数据在存储之前都使用客户的公钥进行加密,所有应用程序都可以访问密码。 这听起来是一个

  • 问题内容: 我一次运行2个单独的Java应用程序。(两个单独的javaw.exe)在它们运行时,我需要在它们之间共享一个对象。 没有永久存储的最简单方法是什么? 问题答案: 对象及其实例变量可以在Java程序的线程之间共享,这是非常简单的任务。 如果您需要在两个程序之间共享对象(例如它的对象)而没有数据存储,那么下一个选择将是使用RMI套接字通信或Java消息传递服务。