Lors de l'utilisation de l'API Firestore dans Ruby, j'ai résumé ce qu'il faut faire si vous souhaitez supprimer uniquement la collection spécifiée qui répond à la condition where.
sample.rb
def delete_sample
  #Obtenir un objet Firestore
  firestore = Google::Cloud::Firestore.new
  #Pour stocker le tableau de documents à supprimer
  doc_array = []
  #Obtenir la collection
  col_ref = firestore.col 'sample_collection'
  #Critères de collecte
  query = col_ref.where 'category', '==', 'test'
  query.get do |r|
    #Stocker le document cible dans un tableau
    doc_array.push r.ref
  end
  #Considérez que vous ne pouvez supprimer que 500
  document_index = 0
  batch_index = 0
  #Supprimer par lots
  while document_index < doc_array.size
    firestore.batch do |b|
      #Suspendu au 501e index
      break if batch_index == 500
      b.delete doc_array[document_index]
      document_index += 1
      batch_index += 1
    end
    batch_index = 0
  end
end
        Recommended Posts