This may not be the problem but in your _checkPermission(), you have to await for _requestPermission();
_checkPermission()
await
_requestPermission()