Realm + React Native 最佳实践用户设置与同步
Realm + React Native best practice user setup with sync
我正在尝试将我的应用程序与 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.*
时所提供的那样。此外,我无法找出实现此模块化设计的最佳实践方法,但仍然有用户 login/register 通过我用 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)
并像这样引用领域:realmContainer.realm
我正在尝试将我的应用程序与 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.*
时所提供的那样。此外,我无法找出实现此模块化设计的最佳实践方法,但仍然有用户 login/register 通过我用 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)
并像这样引用领域:realmContainer.realm