Back

AppwriteException (AppwriteException: , ClientException: Connection reset by peer)

  • 0
  • Self Hosted
  • Functions
  • Databases
Shiba
14 Jul, 2024, 09:18

I am tring to update 3000 + database records the permissions not the data .

TypeScript
import 'dart:async';
import 'dart:io';
import 'package:dart_appwrite/dart_appwrite.dart';
import 'package:starter_template/const.dart';
import 'package:starter_template/models/post.dart';
import 'package:starter_template/post_service.dart';

// This is your Appwrite function
// It's executed each time we get a request
Future<dynamic> main() async {
  // Why not try the Appwrite SDK?
  //
  final client = Client()
      .setEndpoint(Platform.environment['ENDPOINT']!)
      .setProject(Platform.environment['APPWRITE_FUNCTION_PROJECT_ID'])
      .setKey(Platform.environment['APPWRITE_API_KEY']);
  final databases = Databases(client);
  final x = await PostService(database: databases).getAllPosts();
  print(x.length);
  List<Future> futures = [];
  for (var i = 0; i < x.length; i++) {
    final post = x[i];

    final d = databases.updateDocument(
      databaseId: databaseID,
      collectionId: postCOL,
      documentId: post.id!,
      //data: post.toJson(),
      permissions: [
        Permission.delete(Role.user(post.authorId!)),
        Permission.update(Role.user(post.authorId!))
      ],
    );
    futures.add(d);
  }
  await Future.wait(futures);
  exit(0);
}
TL;DR
- Update database records permissions by using pagination and creating smaller batches. - Use the correct syntax for functions in Dart, refer to the Appwrite documentation. - Ensure that the `Platform.environment` variables are correctly set. - Issue could be due to attempting to update all records at once, causing a Connection Reset error.
darShan
14 Jul, 2024, 09:27
  1. use pagination & a slight delay to update all these docs' permissions. A single shot for updating (via Futures) could fail. Create smaller batches.
  2. use the correct syntax for functions, see - https://appwrite.io/docs/products/functions/develop#entrypoint and select Dart.
  3. make sure the Platform.environment are correctly set.
Reply

Reply to this thread by joining our Discord

Reply on Discord

Need support?

Join our Discord

Get community support by joining our Discord server.

Join Discord

Get premium support

Join Appwrite Pro and get email support from our team.

Learn more