anchor.diff:    }
   
     Future<Map> getDocument(String collectionName, String documentName) async {
  -    var url = '$documentsUrl/$collectionName/$documentName';
  -    if (_currentTransaction != null) {
  -      url = '$url?transaction=${_escapedCurrentTransaction}';
  -    }
  +    var url = _documentsUrl.resolveUri(Uri(
  +        path: '$collectionName/$documentName',
  +        query: _currentTransaction == null
  +            ? null
  +            : 'transaction=${_escapedCurrentTransaction}'));
       var response = await _client.get(url, headers: _headers);
       if (response.statusCode == HttpStatus.ok) {
         var document = jsonDecode(response.body);
  
positive.code:     if (_currentTransaction != null) {
        throw Exception('Error: nested transactions');
      }
      var url = '$documentsUrl:beginTransaction';
      var body = '{"options": {}}';
      var response = await _client.post(url, headers: _headers, body: body);
      if (response.statusCode == HttpStatus.ok) {
        var result = jsonDecode(response.body);
        _currentTransaction = result['transaction'] as String;
  
negative.code:       "writes": writes.map((write) => write.data).toList(),
        "transaction": "$_currentTransaction"
      });
      var response =
          await _client.post(_commitUrl, headers: _headers, body: body);
      _currentTransaction = null;
      if (response.statusCode == HttpStatus.conflict) {
        // This HTTP status code corresponds to the ABORTED error code, see
  