我有两个表在解析:User
和Location
。Location的列名为userId
,与User's ObjectId
相关。我在Location
中手动添加了关系,只是为了测试。但是我在获取位置时遇到了麻烦。
用户
|objectId|name |
|--------| --- |
|abc123 | Sta |
|def456 |Danny|
|objectId| geopoint | userId |
|--------|----------|---------------|
|someid |12.3, 45.6|view relation|
var locationObject = ParseObject('Location');
var userObject = ParseObject('User');
var queryUser = QueryBuilder(userObject)
..whereValueExists('objectId', true);
var queryLoc = QueryBuilder(locationObject)
..whereMatchesQuery('userId', queryUser);
var result = await queryLoc.query();
print(result.result); // output: null
您可以通过其id手动查找用户:
final queryLoc = QueryBuilder(locationObject)
..equals('userId', userId); // add your `userId`.
另外,您可以通过使用Parse Flutter SDK中的login
方法在应用程序启动时验证解析(在第一次您需要请求用户的登录和密码,以其他方式您可以从缓存中提取Parse用户)。
注册(您应该添加您的user
,password
和email
参数):
final user = ParseUser().create('user', 'password', 'user@email.com');
final authResponse = await user.login();
if (response.success){
user = response.result;
} else {
// Login error, handle this
}
登录:
final user = ParseUser.currentUser();