Table of Contents

parse

초기화

await Parse().initialize(
  keyParseApplicationId,
  keyParseServerUrl,
  debug: keyDebug,
  liveQueryUrl: keyParseLiveServerUrl,
  autoSendSessionId: true,
  registeredSubClassMap: <String, ParseObjectConstructor>{
    Pantry.keyTableName: () => Pantry(),
    Section.keyTableName: () => Section(),
    Item.keyTableName: () => Item(),
  },
  parseUserConstructor: (username, password, emailAddress,
          {client, debug, sessionToken}) =>
      User(username, password, emailAddress),
);

live query

라이브쿼리가 안된다면, config 설정을 확인하자.

  "liveQuery": {
	  "classNames": ["Pantry", "PantryItem", "PantrySection", "Test", "TestAgain"]
  }

QueryBuilder

데이터가 없는 경우는

var queryBuilder = QueryBuilder<Pantry>(Pantry())
  ..whereEqualTo(Pantry.keyOwner, user.objectId);
var response = await queryBuilder.query();
if (response.success) {
  if (response.results == null) {
    // 새로운 객체를 생성한다.
    var pantry = Pantry()..set(Pantry.keyOwner, user.objectId);
    pantry.save();
    return [pantry];
  }

  return (response.results as List<ParseObject>).cast<Pantry>();
}

'ParseUser' is not a subtype of type 'User'

에러 발생 코드

User? user = await ParseUser.currentUser()

수정 코드

User? user = await ParseUser.currentUser(customUserObject: User.clone());