Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Platform Exception - User is not authenticated, please authenticate using Firebase Authentication and try again. (Flutter, Firebase)

  • Implemented Google Signin - working perfectly
  • User is Authenticated in Firebase - checked in firebase
  • Shows User Not signed in once the user adds the certain image to the firebase storage
  • Firebase Rules are public
  • I don't understand how I am getting this error

Rules To Firebase Storage

rules_version = '2';

// service firebase.storage {
//   match /b/{bucket}/o {
//     match /{allPaths=**} {
//       allow read, write: if true;
//     }
//   }
// }
service firebase.storage {
  // Only a user can upload their file, but anyone can view it
  match /users/{userId}/{fileName} {
    allow read;
    allow write: if true;
  }
}

Login Code

Future loginUser() async {
    {
      auth.authStateChanges().listen((User user) {
        if (user == null) {
          //print('User is currently signed out!');
        }
      });
      isSignedIn = true;
      final user = await gSignIn.signIn();
      if (user == null) {
        isSignedIn = false;
        return;
      } else {
        final googleAuth = await user.authentication;

        final credential = GoogleAuthProvider.credential(
          accessToken: googleAuth.accessToken,
          idToken: googleAuth.idToken,
        );
        await auth.signInWithCredential(credential);
        print(credential);
        isSignedIn = false;
      }
    }
    // saveUserInfoToFireStore();
    // await gSignIn
    //     .signIn()
    //     .then((gSignInAccount) => controlSignIn(gSignInAccount));
    // Navigator.push(
    //   context,
    //   MaterialPageRoute(builder: (context) => HomePage()),
    // );
  }

Compress Image

String status = '';
  String imageUrl;
  bool isLoading;

  Future compressingImage() async {
    final tDirectory = await getTemporaryDirectory();
    final path = tDirectory.path;
    ImD.Image mImageFile = ImD.decodeImage(eImage.readAsBytesSync());
    final compressedImageFile = File('$path/img$postId.jpg')
      ..writeAsBytesSync(ImD.encodeJpg(mImageFile, quality: 99));
    setState(() {
      eImage = compressedImageFile;
    });
  }

Upload Photo to Firebase Storage

Future<String> uploadPhoto(mImageFile) async {
    await gCurrentUser.authentication;
    final StorageReference reference =
        FirebaseStorage.instance.ref().child("Event Banners");
    StorageUploadTask mStorageUploadTask =
        reference.child("post_$postId.jpg").putFile(mImageFile);
    StorageTaskSnapshot storageTaskSnapshot =
        await mStorageUploadTask.onComplete;
    String downloadUrl = await storageTaskSnapshot.ref.getDownloadURL(); //Getting error here
    return downloadUrl;
  }

Error Received: Storage Exception:

E/StorageException(13107): StorageException has occurred.
E/StorageException(13107): User is not authenticated, please authenticate using Firebase Authentication and try again.
E/StorageException(13107):  Code: -13020 HttpResult: 401
E/StorageException(13107): The server has terminated the upload session
E/StorageException(13107): java.io.IOException: The server has terminated the upload session
E/StorageException(13107):  at com.google.firebase.storage.UploadTask.serverStateValid(UploadTask.java:331)
E/StorageException(13107):  at com.google.firebase.storage.UploadTask.shouldContinue(UploadTask.java:300)
E/StorageException(13107):  at com.google.firebase.storage.UploadTask.run(UploadTask.java:221)
E/StorageException(13107):  at com.google.firebase.storage.StorageTask.lambda$getRunnable$7(StorageTask.java:1072)
E/StorageException(13107):  at com.google.firebase.storage.StorageTask$$Lambda$12.run(Unknown Source:2)
E/StorageException(13107):  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
E/StorageException(13107):  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
E/StorageException(13107):  at java.lang.Thread.run(Thread.java:923)
E/StorageException(13107): Caused by: java.io.IOException: {  "error": {    "code": 401,    "message": "Firebase App Check token is invalid."  }}
E/StorageException(13107):  at com.google.firebase.storage.network.NetworkRequest.parseResponse(NetworkRequest.java:434)
E/StorageException(13107):  at com.google.firebase.storage.network.NetworkRequest.parseErrorResponse(NetworkRequest.java:451)
E/StorageException(13107):  at com.google.firebase.storage.network.NetworkRequest.processResponseStream(NetworkRequest.java:442)
E/StorageException(13107):  at com.google.firebase.storage.network.NetworkRequest.performRequest(NetworkRequest.java:272)
E/StorageException(13107):  at com.google.firebase.storage.network.NetworkRequest.performRequest(NetworkRequest.java:286)
E/StorageException(13107):  at com.google.firebase.storage.internal.ExponentialBackoffSender.sendWithExponentialBackoff(ExponentialBackoffSender.java:70)
E/StorageException(13107):  at com.google.firebase.storage.internal.ExponentialBackoffSender.sendWithExponentialBackoff(ExponentialBackoffSender.java:62)
E/StorageException(13107):  at com.google.firebase.storage.UploadTask.sendWithRetry(UploadTask.java:467)
E/StorageException(13107):  at com.google.firebase.storage.UploadTask.beginResumableUpload(UploadTask.java:268)
E/StorageException(13107):  at com.google.firebase.storage.UploadTask.run(UploadTask.java:216)
E/StorageException(13107):  ... 5 more
E/StorageException(13107): StorageException has occurred.
E/StorageException(13107): User is not authenticated, please authenticate using Firebase Authentication and try again.
E/StorageException(13107):  Code: -13020 HttpResult: 401
E/StorageException(13107): The server has terminated the upload session
E/StorageException(13107): java.io.IOException: The server has terminated the upload session
E/StorageException(13107):  at com.google.firebase.storage.UploadTask.serverStateValid(UploadTask.java:331)
E/StorageException(13107):  at com.google.firebase.storage.UploadTask.shouldContinue(UploadTask.java:300)
E/StorageException(13107):  at com.google.firebase.storage.UploadTask.run(UploadTask.java:221)
E/StorageException(13107):  at com.google.firebase.storage.StorageTask.lambda$getRunnable$7(StorageTask.java:1072)
E/StorageException(13107):  at com.google.firebase.storage.StorageTask$$Lambda$12.run(Unknown Source:2)
E/StorageException(13107):  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
E/StorageException(13107):  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
E/StorageException(13107):  at java.lang.Thread.run(Thread.java:923)
E/StorageException(13107): Caused by: java.io.IOException: {  "error": {    "code": 401,    "message": "Firebase App Check token is invalid."  }}
E/StorageException(13107):  at com.google.firebase.storage.network.NetworkRequest.parseResponse(NetworkRequest.java:434)
E/StorageException(13107):  at com.google.firebase.storage.network.NetworkRequest.parseErrorResponse(NetworkRequest.java:451)
E/StorageException(13107):  at com.google.firebase.storage.network.NetworkRequest.processResponseStream(NetworkRequest.java:442)
E/StorageException(13107):  at com.google.firebase.storage.network.NetworkRequest.performRequest(NetworkRequest.java:272)
E/StorageException(13107):  at com.google.firebase.storage.network.NetworkRequest.performRequest(NetworkRequest.java:286)
E/StorageException(13107):  at com.google.firebase.storage.internal.ExponentialBackoffSender.sendWithExponentialBackoff(ExponentialBackoffSender.java:70)
E/StorageException(13107):  at com.google.firebase.storage.internal.ExponentialBackoffSender.sendWithExponentialBackoff(ExponentialBackoffSender.java:62)
E/StorageException(13107):  at com.google.firebase.storage.UploadTask.sendWithRetry(UploadTask.java:467)
E/StorageException(13107):  at com.google.firebase.storage.UploadTask.beginResumableUpload(UploadTask.java:268)
E/StorageException(13107):  at com.google.firebase.storage.UploadTask.run(UploadTask.java:216)
E/StorageException(13107):  ... 5 more
E/StorageException(13107): StorageException has occurred.
E/StorageException(13107): User is not authenticated, please authenticate using Firebase Authentication and try again.
E/StorageException(13107):  Code: -13020 HttpResult: 401
E/StorageException(13107): The server has terminated the upload session
E/StorageException(13107): java.io.IOException: The server has terminated the upload session
E/StorageException(13107):  at com.google.firebase.storage.UploadTask.serverStateValid(UploadTask.java:331)
E/StorageException(13107):  at com.google.firebase.storage.UploadTask.shouldContinue(UploadTask.java:300)
E/StorageException(13107):  at com.google.firebase.storage.UploadTask.run(UploadTask.java:221)
E/StorageException(13107):  at com.google.firebase.storage.StorageTask.lambda$getRunnable$7(StorageTask.java:1072)
E/StorageException(13107):  at com.google.firebase.storage.StorageTask$$Lambda$12.run(Unknown Source:2)
E/StorageException(13107):  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
E/StorageException(13107):  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
E/StorageException(13107):  at java.lang.Thread.run(Thread.java:923)
E/StorageException(13107): Caused by: java.io.IOException: {  "error": {    "code": 401,    "message": "Firebase App Check token is invalid."  }}
E/StorageException(13107):  at com.google.firebase.storage.network.NetworkRequest.parseResponse(NetworkRequest.java:434)
E/StorageException(13107):  at com.google.firebase.storage.network.NetworkRequest.parseErrorResponse(NetworkRequest.java:451)
E/StorageException(13107):  at com.google.firebase.storage.network.NetworkRequest.processResponseStream(NetworkRequest.java:442)
E/StorageException(13107):  at com.google.firebase.storage.network.NetworkRequest.performRequest(NetworkRequest.java:272)
E/StorageException(13107):  at com.google.firebase.storage.network.NetworkRequest.performRequest(NetworkRequest.java:286)
E/StorageException(13107):  at com.google.firebase.storage.internal.ExponentialBackoffSender.sendWithExponentialBackoff(ExponentialBackoffSender.java:70)
E/StorageException(13107):  at com.google.firebase.storage.internal.ExponentialBackoffSender.sendWithExponentialBackoff(ExponentialBackoffSender.java:62)
E/StorageException(13107):  at com.google.firebase.storage.UploadTask.sendWithRetry(UploadTask.java:467)
E/StorageException(13107):  at com.google.firebase.storage.UploadTask.beginResumableUpload(UploadTask.java:268)
E/StorageException(13107):  at com.google.firebase.storage.UploadTask.run(UploadTask.java:216)
E/StorageException(13107):  ... 5 more
E/StorageException(13107): StorageException has occurred.
E/StorageException(13107): User is not authenticated, please authenticate using Firebase Authentication and try again.
E/StorageException(13107):  Code: -13020 HttpResult: 401
E/StorageException(13107): The server has terminated the upload session
E/StorageException(13107): java.io.IOException: The server has terminated the upload session
E/StorageException(13107):  at com.google.firebase.storage.UploadTask.serverStateValid(UploadTask.java:331)
E/StorageException(13107):  at com.google.firebase.storage.UploadTask.shouldContinue(UploadTask.java:300)
E/StorageException(13107):  at com.google.firebase.storage.UploadTask.run(UploadTask.java:221)
E/StorageException(13107):  at com.google.firebase.storage.StorageTask.lambda$getRunnable$7(StorageTask.java:1072)
E/StorageException(13107):  at com.google.firebase.storage.StorageTask$$Lambda$12.run(Unknown Source:2)
E/StorageException(13107):  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
E/StorageException(13107):  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
E/StorageException(13107):  at java.lang.Thread.run(Thread.java:923)
E/StorageException(13107): Caused by: java.io.IOException: {  "error": {    "code": 401,    "message": "Firebase App Check token is invalid."  }}
E/StorageException(13107):  at com.google.firebase.storage.network.NetworkRequest.parseResponse(NetworkRequest.java:434)
E/StorageException(13107):  at com.google.firebase.storage.network.NetworkRequest.parseErrorResponse(NetworkRequest.java:451)
E/StorageException(13107):  at com.google.firebase.storage.network.NetworkRequest.processResponseStream(NetworkRequest.java:442)
E/StorageException(13107):  at com.google.firebase.storage.network.NetworkRequest.performRequest(NetworkRequest.java:272)
E/StorageException(13107):  at com.google.firebase.storage.network.NetworkRequest.performRequest(NetworkRequest.java:286)
E/StorageException(13107):  at com.google.firebase.storage.internal.ExponentialBackoffSender.sendWithExponentialBackoff(ExponentialBackoffSender.java:70)
E/StorageException(13107):  at com.google.firebase.storage.internal.ExponentialBackoffSender.sendWithExponentialBackoff(ExponentialBackoffSender.java:62)
E/StorageException(13107):  at com.google.firebase.storage.UploadTask.sendWithRetry(UploadTask.java:467)
E/StorageException(13107):  at com.google.firebase.storage.UploadTask.beginResumableUpload(UploadTask.java:268)
E/StorageException(13107):  at com.google.firebase.storage.UploadTask.run(UploadTask.java:216)
E/StorageException(13107):  ... 5 more
E/StorageException(13107): StorageException has occurred.
E/StorageException(13107): User is not authenticated, please authenticate using Firebase Authentication and try again.
E/StorageException(13107):  Code: -13020 HttpResult: 401
E/StorageException(13107): {  "error": {    "code": 401,    "message": "Firebase App Check token is invalid."  }}
E/StorageException(13107): java.io.IOException: {  "error": {    "code": 401,    "message": "Firebase App Check token is invalid."  }}
E/StorageException(13107):  at com.google.firebase.storage.network.NetworkRequest.parseResponse(NetworkRequest.java:434)
E/StorageException(13107):  at com.google.firebase.storage.network.NetworkRequest.parseErrorResponse(NetworkRequest.java:451)
E/StorageException(13107):  at com.google.firebase.storage.network.NetworkRequest.processResponseStream(NetworkRequest.java:442)
E/StorageException(13107):  at com.google.firebase.storage.network.NetworkRequest.performRequest(NetworkRequest.java:272)
E/StorageException(13107):  at com.google.firebase.storage.network.NetworkRequest.performRequest(NetworkRequest.java:286)
E/StorageException(13107):  at com.google.firebase.storage.internal.ExponentialBackoffSender.sendWithExponentialBackoff(ExponentialBackoffSender.java:70)
E/StorageException(13107):  at com.google.firebase.storage.internal.ExponentialBackoffSender.sendWithExponentialBackoff(ExponentialBackoffSender.java:62)
E/StorageException(13107):  at com.google.firebase.storage.GetDownloadUrlTask.run(GetDownloadUrlTask.java:76)
E/StorageException(13107):  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
E/StorageException(13107):  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
E/StorageException(13107):  at java.lang.Thread.run(Thread.java:923)
D/ViewRootImpl[MainActivity](13107): windowFocusChanged hasFocus=false inTouchMode=true
W/vent_managemen(13107): Accessing hidden method Ldalvik/system/CloseGuard;->close()V (greylist,core-platform-api, linking, allowed)
Lost connection to device.
Exited (sigterm)

Error After Debugging

like image 558
Ruudra Patel Avatar asked May 28 '26 09:05

Ruudra Patel


1 Answers

I was facing the same issue. After the constant work of two days, I came to know that in the debug mode, its important to give SHA1 debug key in firebase console of your project otherwise FirebaseStorage wouldn't allow you to upload files to Firebase storage no matters if you have already given release SHA1 or SHA-256 keys.

like image 65
Bilal Saeed Avatar answered Jun 02 '26 12:06

Bilal Saeed



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!