我正在尝试将我的应用程序与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并未提供注册用户的可靠示例。
我的问题是:
realm
设置的已初始化sync: { user: user, url: 'realm url'}
对象?如果我的问题没有意义,请告诉我,我会尽力详细说明......因为我觉得这可能不容易理解。
答案 0 :(得分:3)
嗯,这取决于你的情况,有很多方法可行。 我想你可以这样做:
// 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)
并参考这样的领域:realmContainer.realm