Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/118.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 领域+;使用同步响应本机最佳做法用户设置_Javascript_Ios_React Native_Realm_Es6 Modules - Fatal编程技术网

Javascript 领域+;使用同步响应本机最佳做法用户设置

Javascript 领域+;使用同步响应本机最佳做法用户设置,javascript,ios,react-native,realm,es6-modules,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,

我正在尝试将我的应用程序与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);
  }
})
 export default new Realm({schema: [Todo, TodoList]});
这似乎很有效。我有类似的代码将用户登录到域中。但是,在这里查看Realm JS(React Native)示例时:它们导出Realm对象,如下所示:

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);
  }
})
 export default new Realm({schema: [Todo, TodoList]});
现在,这看起来非常简洁,并且在应用程序的其余部分完美地使用了
领域。然而,它并没有像使用
Realm.sync.user.*
时提供的那样使用包含用户详细信息的sync对象。我也不知道实现这种模块化设计的最佳实践方法,但仍然有用户通过我用
Realm.sync.user.register()展示的第一个示例登录/注册

这里的示例应用程序没有给出注册用户的可靠示例

我的问题是:

  • 保持整洁和正确设置用户的最佳方法是什么
  • 有没有更好的方法来访问使用
    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(电子邮件、密码)
并引用如下领域:
realmContainer.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(电子邮件、密码)
并参考如下领域:
realmContainer.realm

非常好的建议。谢谢你的意见。我现在正试图找出如何处理身份验证状态。在领域文档中看不到任何关于这方面的信息。出现了一些问题。我无法重新设计这个领域。初始化后的realmContainer.realm为空。很好的建议。谢谢你的意见。我现在正试图找出如何处理身份验证状态。在领域文档中看不到任何关于这方面的信息。出现了一些问题。我无法重新设计这个领域。初始化后的realmContainer.realm为null。