@@ -388,11 +388,21 @@ public class GoogleDriveStorage: NetworkStorage, URLSessionDataDelegate {
388388 }
389389
390390 override func listChildren( fileId: String , path: String ) async {
391+ let viewContext = CloudFactory . shared. data. viewContext
392+ let storage = storageName ?? " "
393+ await viewContext. perform {
394+ let fetchRequest = NSFetchRequest < NSFetchRequestResult > ( entityName: " RemoteData " )
395+ fetchRequest. predicate = NSPredicate ( format: " parent == %@ && storage == %@ " , fileId, storage)
396+ if let result = try ? viewContext. fetch ( fetchRequest) {
397+ for object in result {
398+ viewContext. delete ( object as! NSManagedObject )
399+ }
400+ }
401+ }
391402 if spaces == " appDataFolder " {
392403 let fixFileId = ( fileId == " " ) ? rootName : fileId
393404 let result = await listFiles ( q: " ' \( fixFileId) '+in+parents " , pageToken: " " )
394405 if let items = result {
395- let viewContext = CloudFactory . shared. data. viewContext
396406 for item in items {
397407 storeItem ( item: item, parentFileId: fileId, parentPath: path, context: viewContext)
398408 }
@@ -403,7 +413,6 @@ public class GoogleDriveStorage: NetworkStorage, URLSessionDataDelegate {
403413 return
404414 }
405415 if fileId == " " {
406- let viewContext = CloudFactory . shared. data. viewContext
407416 storeRootItems ( context: viewContext)
408417 await viewContext. perform {
409418 try ? viewContext. save ( )
@@ -413,7 +422,6 @@ public class GoogleDriveStorage: NetworkStorage, URLSessionDataDelegate {
413422 if fileId == " teamdrives " {
414423 let result = await listTeamdrives ( q: " " , pageToken: " " )
415424 if let items = result {
416- let viewContext = CloudFactory . shared. data. viewContext
417425 for item in items {
418426 storeTeamDriveItem ( item: item, context: viewContext)
419427 }
@@ -430,7 +438,6 @@ public class GoogleDriveStorage: NetworkStorage, URLSessionDataDelegate {
430438 let fixFileId = comp [ 1 ]
431439 let result = await listFiles ( q: " ' \( fixFileId) '+in+parents " , pageToken: " " , teamDrive: teamId)
432440 if let items = result {
433- let viewContext = CloudFactory . shared. data. viewContext
434441 for item in items {
435442 storeItem ( item: item, parentFileId: fileId, parentPath: path, teamID: teamId, context: viewContext)
436443 }
@@ -443,7 +450,6 @@ public class GoogleDriveStorage: NetworkStorage, URLSessionDataDelegate {
443450 let fixFileId = ( fileId == " mydrive " ) ? rootName : fileId
444451 let result = await listFiles ( q: " ' \( fixFileId) '+in+parents " , pageToken: " " )
445452 if let items = result {
446- let viewContext = CloudFactory . shared. data. viewContext
447453 for item in items {
448454 storeItem ( item: item, parentFileId: fileId, parentPath: path, context: viewContext)
449455 }
0 commit comments