我正在将我的第一步转向反应本机开发,并且我正在尝试集成本地和云存储领域。
我要去参加博览会,所以我从 realm docs 下载了模板。我对存储的想法是,最初用户无需注册即可使用该应用程序。然后,如果他愿意,他可以创建一个帐户将本地数据同步到云端。这样他就可以使用另一台设备并仍然可以访问他的数据。
模板中有
AppSync.tsx
和AppNonSync.tsx
。这是什么意思?我是否必须为本地或云存储开发不同的版本?该应用程序还根据 sync.config.js
中的标志决定加载哪一个。我认为当用户决定注册时我可以在运行时更改它。
我发现该模板相当混乱。你能帮我理解一下吗?
编辑1:
我尝试切换标志来加载 AppSync,现在它要求我立即登录/启动(它看起来不是“先离线”)。
Realm 和 Realm SDK(现在称为 Atlas Device SDK)是一个离线的第一个数据库,能够同步到 MongoDB Atlas 服务器,即“云存储”。
通过同步,Realm 数据首先存储在本地,然后自动同步到 Atlas - 只要有互联网连接,通常在几毫秒内。
问题中提到的两个文件仅演示离线存储(AppNonSync.tsx),通常称为“仅本地”,然后同步存储(AppSync.tsx)。 Local only 实现起来要简单得多,并且是熟悉 Realm 的一个很好的起点。例如,此代码是配置仅本地 Realm 所需的全部代码
import React from 'react';
import {RealmProvider} from '@realm/react';
function AppWrapperLocal() {
return (
<RealmProvider schema={[YourObjectModel]}>
<RestOfApp />
</RealmProvider>
);
}
同步设置需要更多代码,并且已在文档中介绍。
匿名身份验证是允许用户尝试应用程序的一种方式,以后可以更改为电子邮件/密码身份验证,并可以链接到原始数据。文档中对此进行了介绍。
您不需要创建两个不同的版本;如果是同步的,则使用 AppSyc 模板。请注意,即使同步也存储在本地,因此即使离线,您也始终可以访问数据。 离线时访问同步领域
介绍了离线时访问同步数据一个想法是让您的试用版成为仅本地应用程序(不需要身份验证) - 当用户注册时决定喜欢它时,他们的数据将在他们的所有设备上可用。