in packages/amplify_datastore/example/lib/main.dart [84:170]
Future<void> initPlatformState() async {
try {
datastorePlugin = AmplifyDataStore(
modelProvider: ModelProvider.instance,
errorHandler: ((error) =>
{print("Custom ErrorHandler received: " + error.toString())}),
);
await Amplify.addPlugin(datastorePlugin);
// Configure
// Uncomment the below lines to enable online sync.
// await Amplify.addPlugin(AmplifyAPI());
// await Amplify.configure(amplifyconfig);
// Remove this line when using the lines above for online sync
await Amplify.configure("{}");
} on AmplifyAlreadyConfiguredException {
print(
'Amplify was already configured. Looks like app restarted on android.');
}
listenToHub();
Amplify.DataStore.observeQuery(
Blog.classType,
).listen((QuerySnapshot<Blog> snapshot) {
var count = snapshot.items.length;
var now = DateTime.now().toIso8601String();
bool status = snapshot.isSynced;
print(
'[Observe Query] Blog snapshot received with $count models, status: $status at $now');
setState(() {
_blogs = snapshot.items;
});
});
Amplify.DataStore.observeQuery(
Post.classType,
).listen((QuerySnapshot<Post> snapshot) {
setState(() {
_posts = snapshot.items;
});
});
Amplify.DataStore.observeQuery(
Comment.classType,
).listen((QuerySnapshot<Comment> snapshot) {
setState(() {
_comments = snapshot.items;
});
});
// setup streams
postStream = Amplify.DataStore.observe(Post.classType);
postStream.listen((event) {
_postStreamingData.add('Post: ' +
(event.eventType.toString() == EventType.delete.toString()
? event.item.id
: event.item.title) +
', of type: ' +
event.eventType.toString());
}).onError((error) => print(error));
blogStream = Amplify.DataStore.observe(Blog.classType);
blogStream.listen((event) {
_blogStreamingData.add('Blog: ' +
(event.eventType.toString() == EventType.delete.toString()
? event.item.id
: event.item.name) +
', of type: ' +
event.eventType.toString());
}).onError((error) => print(error));
commentStream = Amplify.DataStore.observe(Comment.classType);
commentStream.listen((event) {
_commentStreamingData.add('Comment: ' +
(event.eventType.toString() == EventType.delete.toString()
? event.item.id
: event.item.content) +
', of type: ' +
event.eventType.toString());
}).onError((error) => print(error));
setState(() {
_isAmplifyConfigured = true;
});
}