【问题标题】:Realm + React Native best practice user setup with syncRealm + React Native 最佳实践用户设置同步
【发布时间】:2017-02-13 20:34:58
【问题描述】:

我正在尝试将我的应用程序与 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 JS (React Native) 示例时:https://github.com/realm/realm-js/blob/master/examples/ReactExample/components/realm.js 他们使用以下内容导出领域对象:

 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 对象?
  • 有没有更好的例子来学习如何做到这一点?

如果我的问题没有意义,请告诉我,我会尝试详细说明……因为我知道这可能不容易理解。

【问题讨论】:

    标签: javascript ios react-native realm es6-modules


    【解决方案1】:

    嗯,这取决于您的情况,并且有多种方法可行。 我想你可以这样做:

    // 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.initialize(email, password) 并像这样引用领域:realmContainer.realm

    【讨论】:

    • 很好的建议。感谢您的输入。我现在正试图弄清楚如何处理身份验证状态。在领域文档中看不到任何关于此的内容。
    • 出了点问题。我无法重新分配 this.realm。初始化后的realmContainer.realm为null。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    • 2016-07-25
    • 1970-01-01
    • 1970-01-01
    • 2015-09-02
    • 2020-08-01
    • 2019-10-10
    相关资源
    最近更新 更多