title: Android not catching Firestore Transaction PlatformException
body: <p>I am build random 1:1 chat app in Flutter and Firebase. I am use <code>transaction</code> for add user to chat because must avoid race condition of more than 1 user be add to chat. Chat must be 1:1. </p>
  
  <p>I need catch <code>transaction</code> error if <code>transaction</code> timeout.</p>
  
  <p>But <strong>error is catch only on iOS</strong> (not Android). 
  Only on iOS it catch error as show:</p>
  
  <blockquote>
    <p>PlatformException(9, Transaction failed all retries.: Every document
    read in a transaction must also be written in that transaction., null)</p>
  </blockquote>
  
  <p><strong>On Android in debug mode app freeze and throw error</strong> in <code>message_codecs.dart</code> : </p>
  
  <blockquote>
    <p>throw PlatformException(code: errorCode, message: errorMessage,
    details: errorDetails);</p>
  </blockquote>
  
  <p>Here is transaction:</p>
  
  <pre><code>      Future&lt;bool&gt; addUser() async {
  
      try {
        await Firestore.instance.runTransaction((transaction) async {
          DocumentSnapshot chatRoomDocSnapshot =
              await transaction.get(chatRoomDocRef);
          bool userInChat = await chatRoomDocSnapshot[‘userInChat'];
  
          if (userInChat == false) {
              await transaction.update(chatRoomDocSnapshot.reference, {
                ‘userInChat': true,
              });
          }
        });
  
      await chatUserRef.setData({
        ‘User’: user,
      });
  
        userAdded = true;
  
  
      } catch (e) {
  print(e);
        userAdded = false;
      }
      return userAdded;
        }
  </code></pre>
  
  <p>I am use plugin <code>cloud_firestore: ^0.12.5+1</code></p>
  
  <p>Anyone see this plugin issue? </p>
  
  <p>Why only have this error on Android?</p>
  
  <p>Thanks for help!</p>