[RAILS] Abrufen und Hinzufügen von Daten aus dem Firebase Firestore in Ruby

Holen Sie sich Daten aus dem Firestore in Ruby und fügen Sie sie hinzu

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.

Was ist Firestore?

Es ist eine Cloud-Datenbank von No SQL, die von Firebase erstellt wurde.

der Begriff

Im Moment denke ich, dass es in Ordnung ist, wenn Sie die folgenden drei Begriffe in Firestore kennen.

Cloud Firestore-Datenmodell

Sammlung

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.

Dokument

In der Sammlung gespeicherte Daten. Daten werden von einer eindeutigen Dokument-ID verwaltet, und dieser Dokument-ID ist ein Feld zugeordnet.

Feld

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.

Stellen Sie sicher, dass Firebase mit Rails funktioniert

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.

Feuerlöscher zur Verfügung stellen

Es gibt einen Edelstein, mit dem Sie den Feuerladen benutzen können

gem 'google-cloud-firestore'

Wird genutzt.

Erstellen Sie ein Firestore-Objekt

Firestore-Einstellungen

Über class_attribute

firebase.rb


class Firesbase
  require 'google/cloud'

  class_attribute :connecting
  self.connecting = Google::Cloud.new(Projektname in der Konsole erstellt).firestore
end

Geben Sie eine Sammlung an

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'

Daten bekommen

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 }

Daten hinzufügen

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

Daten aktualisieren

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

Abrufen und Hinzufügen von Daten aus dem Firebase Firestore in Ruby
So überschreiben Sie Firebase-Daten mit Swift
So erhalten Sie eine Klasse von Element in Java
Umgang mit TSV-Dateien und CSV-Dateien in Ruby
[IOS 14] Wie erhalte ich Bilddaten vom Datentyp direkt von PHPickerViewController?
Wie man in Ruby auf unbestimmte Zeit iteriert
So erhalten Sie Parameter in Spark
So installieren Sie Bootstrap in Ruby
So löschen Sie große Datenmengen in Rails und Bedenken
[Java] So konvertieren Sie vom Typ String in den Pfadtyp und erhalten den Pfad
[Java] Hinzufügen von Daten zur Liste (add, addAll)
So fügen Sie eine JAR-Datei in ScalaIDE hinzu
So erhalten Sie das Datum mit Java
[Einfach] So aktualisieren Sie Ruby und Bundler
So ändern Sie die maximale und maximale Anzahl von POST-Daten in Spark
Versuchen Sie, mit MyBatis im Micronaut + Kotlin-Projekt Daten aus der Datenbank abzurufen
So erhalten Sie den Einstellungswert (Eigenschaftswert) aus der Datenbank in Spring Framework
So erstellen Sie Ihre eigene Anmerkung in Java und erhalten den Wert
So erhalten Sie Keycloak-Anmeldeinformationen in der Interceptor-Klasse
So fügen Sie in Spring Boot einen Klassenpfad hinzu
So fügen Sie die html.erb-Klasse in Rails bedingt hinzu
Wie man Java SE8 Gold bekommt und studiert
So erhalten Sie eine SIMD-Optimierung für HotSpot JavaVM
[Rails] So geben Sie Erfolgs- und Fehlermeldungen aus
So erstellen Sie die einfachste Blockchain in Ruby
[Ruby] Wie erhalte ich den Wert von der Standardeingabe?
Ruby So konvertieren Sie zwischen Groß- und Kleinschreibung
So implementieren Sie Paginierung in GraphQL (für Ruby)
Ich möchte den Wert in Ruby erhalten
[JPA] Vergleichen Sie Tabelle1 und Tabelle2, um Daten abzurufen und zu aktualisieren, die in Tabelle2 nicht vorhanden sind
So erhalten Sie die ID eines Benutzers, der sich in Swift bei Firebase authentifiziert hat
So starten Sie einen Index aus einer beliebigen Zahl in der iterativen Ruby-Verarbeitung
So löschen Sie alle Daten in einer bestimmten Tabelle
[Ruby] Verwendung der Standardausgabe bei der bedingten Verzweigung
[Ruby] Zusammenfassung, wie man Werte aus Standardeingaben erhält [Paiza Skill Check Measures]
[Ruby on Rails] Wie schreibe ich eine Enumeration auf Japanisch?
Rails / Ruby: So erhalten Sie HTML-Text für Mail
So erhalten Sie Informationen zu zugeordneten Tabellen in vielen-zu-vielen-Tabellen
[Java] So erhalten Sie den Schlüssel und den Wert, die in Map gespeichert sind, durch iterative Verarbeitung
So erstellen Sie einen Daten-URI (base64) in Java
[Ruby On Rails] So setzen Sie die Datenbank in Heroku zurück
So starten Sie einen anderen Befehl in einem Ruby-Programm
Von Java zu Ruby !!
So konvertieren Sie A in a und a in A mit logischem Produkt und Summe in Java
[Swift] So erhalten Sie die Firebase-Dokument-ID
(Ruby on Rails6) So erstellen Sie ein Modell und eine Tabelle
[Kotlin] So erhalten Sie die IP-Adresse und den Benutzeragenten
So starten Sie die Swagger-Benutzeroberfläche und den Swagger-Editor in Docker
So beheben Sie den SSL_connect-Fehler im PayPal Ruby SDK