Dieses Mal werde ich den Code, der beim Abrufen von Daten aus dem Firestore in Ruby eine Abfrage ausgibt, und den Code, der Daten hinzufügt, zusammenfassen.
Es ist eine Cloud-Datenbank von No SQL, die von Firebase erstellt wurde.
Im Moment denke ich, dass es in Ordnung ist, wenn Sie die folgenden drei Begriffe in Firestore kennen.
Ein allgemeiner Rahmen zum Speichern von Daten (Dokumenten). Wenn Sie in der Seitenleiste der Firebase-Konsole auf Cloud Firestore klicken, befindet sich die Sammlung ganz links auf dem Bildschirm. Zugehörige Daten (Dokumente) werden in einer Sammlung gespeichert.
In der Sammlung gespeicherte Daten. Daten werden von einer eindeutigen Dokument-ID verwaltet, und dieser Dokument-ID ist ein Feld zugeordnet.
Daten, die einem Dokument zugeordnet sind. Es ist möglich, mehrere Elemente mit einem Dokument zu verknüpfen.
Die obige verschachtelte Struktur ist das Firestore-Datenmodell. "Abrufen der Werte aus der Sammlung in das Dokument und in die Felder" ist also das Abrufen der Firestore-Daten. Ich habe den Eindruck, dass Sie einige Schritte unternehmen müssen.
Die unten beschriebenen Methoden müssen Firestore-Methoden verwenden können.
Anstatt ActiveRecord zu verwenden, das das ORM von MySQL ist, wird es mithilfe eines Edelsteins für den Zugriff auf Daten im Fiestore verknüpft.
Es gibt einen Edelstein, mit dem Sie den Feuerladen benutzen können
gem 'google-cloud-firestore'
Wird genutzt.
firebase.rb
class Firesbase
require 'google/cloud'
class_attribute :connecting
self.connecting = Google::Cloud.new(Projektname in der Konsole erstellt).firestore
end
Bestimmen Sie zunächst, aus welcher Sammlung Sie die Daten abrufen möchten. Wenn Sie die Erfassungsmethode verwenden und den Namen der in der Firebase-Konsole erstellten Sammlung als Argument angeben, können Sie mit dieser Methode Daten für diese Sammlung abrufen.
collection.rb
hogehfuges_colleciton = connecting.collection 'hogefugas'
Es scheint, dass die folgenden drei als Hauptbestandteil der Erfassungsmethode verwendet werden.
document
get_by_document.rb
hoge = hoge_collection.document(Dokument Identifikation).get #Google::Cloud::Firestore::DocumentSnapshot
fuge = fuge_collection.document(Dokument Identifikation).get.data # Hash
Wenn Sie die Dokument-ID als Argument verwenden, erhält das Dokument die Daten, die dieser Dokument-ID zugeordnet sind. Wenn Sie die get-Methode verwenden, können Sie sie mit einem Objekt namens Google :: Cloud :: Firestore :: DocumentSnapshot abrufen. Da Sie die Daten des Felds jedoch nicht so verarbeiten können, wie sie sind, verwenden Sie die data-Methode. Wenn Sie die Datenmethode verwenden, wird ein Hash mit dem dem erfassten Dokument zugeordneten Feld als Schlüssel erstellt, und Sie können über die Hash-Operation wie unten gezeigt problemlos auf die Daten zugreifen.
data.rb
fuge[:fugefuge_name]
where Woher kommt derjenige, der die Bedingungen erfüllt? Wenn Sie die Methode get verwenden, lautet der Objekttyp Enumerator. Daher müssen Sie die Schleifenverarbeitung oder eine Methode verwenden, die die Schleifenverarbeitung in der Standardbibliothek von Ruby enthält (z. B. map). Sie können die Datenmethode für die in einer Schleife abgerufenen Daten verwenden, um auf die Daten zuzugreifen.
get_by_where.rb
snap = hogefugas_collection.where(Bedingungen).get #Enumerator
snap.map do |hoge|
{
"hoge_name" => hoge.data[:hoge_name],
"update_at" => hoge.data[:update_at]
}
end
order order gibt ein Feld als Argument an und ruft das Dokument ab, in dem das Feld vorhanden ist. Wenn order auch die get-Methode durchläuft, lautet der Objekttyp Enumrator. Führen Sie daher eine Schleife durch, bevor Sie auf die Daten zugreifen. Der folgende Code verwendet die document_id-Methode anstelle der data-Methode. Auf diese Weise können Sie die Dokument-ID des Dokuments abrufen, nicht das Feld.
get_by_oder.rb
hoges = hogefugas_collection.order('updatedAt').get.map { |hoge| hoge.document_id }
Verwenden Sie die Set-Methode. Erstellen Sie Daten mithilfe des Felds, das Sie als Hash-Schlüssel speichern möchten. Wenn Sie es als Argument der set-Methode verwenden, wird die Dokument-ID automatisch in der angegebenen Sammlung generiert und im Firestore gespeichert.
set.rb
def save(id, hoge)
huge = {
id: id,
hogehoge: hoge,
update_at: DateTime.now.strftime("%Y-%m-%d-%H:%M")
}
collection.doc.set(huge)
end
Verwenden Sie die Aktualisierungsmethode. Sie können die Daten aktualisieren, indem Sie die Dokument-ID in der Sammlung angeben, die Sie aktualisieren möchten, und dieses Feld als Argument für die Aktualisierungsmethode verwenden.
update.rb
def edit(id, hoge)
document_id = collection.where("id", "=", id).get.first.document_id
collection.document(document_id).update(
hogehoge: hoge,
update_at: DateTime.now.strftime("%Y-%m-%d-%H:%M")
)
end
Recommended Posts