我正在尝试将我的应用程序与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
对象 - 有没有更好的例子可以学习如何做到这一点
如果我的问题没有意义,请告诉我,我会尽力详细说明。。。因为我意识到这可能不容易理解。
嗯,这在一定程度上取决于您的情况,有很多方法可以奏效。我想你可以这样做:
// 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);
}
})
}
};
那么,如果您将其包含为从"导入realmContainer/领域容器';
然后,您可以调用realmContainer.initialize(email, password)
并引用如下领域:realmContainer.realm