javascript - Realm + React Native 最佳实践用户设置与同步

标签 javascript ios react-native realm es6-modules

我正在尝试将我的应用程序与 Realm.io 集成......因为它看起来是一个非常棒的平台。我正在尝试通过以下方式正确登录+注册用户:

Realm.Sync.User.register('http://realm-ip:9080', this.state.email, this.state.password, (error, user) => {
  if (!error) {
    var realm = new Realm({
      sync: {
        user: user,
        url: 'realm://realm-ip:9080/~/userRealm',
      },
      schema: [PersonSchema, ConversationSchema]
    });
  }
  else {
    console.log(error);
  }
})

这似乎工作得很好。我有类似的代码用于将用户登录到 Realm 。不过,在此处查看 Realm JS(React Native)示例时:https://github.com/realm/realm-js/blob/master/examples/ReactExample/components/realm.js他们用类似的东西导出 Realm 对象:

 export default new Realm({schema: [Todo, TodoList]});

现在,这看起来非常简洁,并且在应用程序的其余部分完美地使用了 realm。但是,它没有使用其中包含用户详细信息的同步对象,正如使用 Realm.Sync.User.* 时所提供的那样,我也无法找出实现此目的的最佳实践方法模块化设计,但仍然有用户通过我用 Realm.Sync.User.register()

展示的第一个示例登录/注册

此处的示例应用程序 https://github.com/realm/realm-js/blob/master/examples/ReactExample没有提供注册用户的可靠示例。

我的问题是:

  • 保持整洁和正确设置用户的最佳方法是什么?
  • 是否有更好的方法来访问已使用 sync: { user: user, url: 'realm url'} 设置的已初始化 realm 对象?
  • 是否有更好的示例可以学习如何执行此操作?

如果我的问题没有意义,请告诉我,我会尽力详细说明...因为我意识到它可能不容易理解。

最佳答案

好吧,这在某种程度上取决于您的情况,并且有许多可行的方法。 我猜你可以这样做:

// realm-container.js

import Realm from 'realm';

export default {
  realm: null,
  initialize: (email, password) => {
    Realm.Sync.User.register('http://realm-ip:9080', email, password, (error, user) => {
      if (!error) {
        this.realm = new Realm({
          sync: {
            user: user,
            url: 'realm://realm-ip:9080/~/userRealm',
          },
          schema: [PersonSchema, ConversationSchema]
        });
      }
      else {
        console.log(error);
      }
    })
  }
};

然后,如果您将其包括为 从 './realm-container' 导入 realmContainer;

然后您可以调用 realmContainer.initialize(email, password) 并像这样引用 Realm :realmContainer.realm

关于javascript - Realm + React Native 最佳实践用户设置与同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42213046/

相关文章:

ios - 如何设置 Collection View 的搜索栏

javascript - 排毒 - 在基本的 iOS RN 应用程序上努力达到 "build the Detox version of the binary, and run the tests"

javascript - 不能在 React Native 中只调用一次函数?

javascript - 如何使用 Codeigniter 从 Ajax Jquery 中的 Controller 获取多个参数?

javascript - 具有多个 Y 轴的 Charts.js 图

javascript - 在android webview中为本地文件创建脚本标签时出现问题

javascript - 滚动时更改的 Javascript 菜单的 Else 语句不起作用

iphone - Objective-c 同一 View 中的多个委托(delegate) - ECSlidingViewController

ios - UIButton 在 UITableViewCell 中不可点击

javascript - 带部分列表的 React-Native 导航