Amplify.Auth.signIn(username: email, password: password);
Amplify.Auth.signUp(
username: email,
password: password,
options: CognitoSignUpOptions(userAttributes: userAttributes))
Amplify.Auth.confirmSignUp(
username: email, confirmationCode: code)
Amplify.Auth.signOut()
Amplify.Auth.fetchAuthSession()
Returns AuthSession. If user is signed in we can also get current user
if (authSession.isSignedIn)
authNotifier.currentUser = await Amplify.Auth.getCurrentUser();
final String createToDoDocument = '''mutation MyMutation {
createTodo(input: {description: "$todoDescription", name: "$todoName", userID: "${userNotifier.currentUser?.userId}"}) {
name
userID
id
description
}
}
''';
String deleteToDoDocument = '''mutation MyMutation {
deleteTodo(input: {id: "$todoID", userID: "${authNotifier.currentUser?.userId}"}) {
description
name
id
userID
}
}
''';
String fetchingQuery = '''query MyQuery {
listTodos(filter: {userID: {eq: "${authNotifier.currentUser?.userId}"}}) {
items {
description
id
name
userID
}
}
}
''';
Example subscription will trigger each time we create new todo item:
String onCreateSubscription = '''subscription MySubscription {
onCreateTodo {
id
description
name
userID
}
} ''';
Registering subscription based on graphql document:
Amplify.API.subscribe(
request: GraphQLRequest<String>(document: onCreateSubscription),
TODO class is auto-generated by amplify based on defined graphql scheme on amplify console. This model is then used in TodoNotifier for storing list of all todo items
List<Todo> todos = [];