String
Die String-Eigenschaft ist der vielseitigste Feldtyp in FireCMS. Verwenden Sie sie für alles, von einfachen Texteingaben bis hin zu Datei-Uploads, Rich-Text-Editoren und Dropdowns. Beim Erstellen eines Admin-Panels für Ihre Firebase-App ermöglichen String-Eigenschaften:
- Textfelder: Namen, Titel, Beschreibungen
- Auswahl-Dropdowns: Statusfelder, Kategorien, Optionen
- Datei-Uploads: Bilder, Dokumente (gespeichert in Firebase Storage)
- Markdown-Editoren: Reichhaltiger Inhalt mit Formatierung
- E-Mail/URL-Felder: Validierte Eingabetypen
import { buildProperty } from "@firecms/core";
const nameProperty = buildProperty({ name: "Name", description: "Basic string property with validation", validation: { required: true }, dataType: "string"});storage
Abschnitt betitelt „storage“Sie können eine StorageMeta-Konfiguration angeben. Diese wird verwendet, um
anzuzeigen, dass dieser String auf einen Pfad in Google Cloud Storage verweist.
mediaTypeMedientyp dieser Referenz, verwendet für die Anzeige der Vorschau.acceptedFilesDatei-MIME-Typ, der zu dieser Referenz hochgeladen werden kann. Beachten Sie, dass Sie auch die Asterisk-Notation verwenden können, sodassimage/*jede Bilddatei akzeptiert.metadataSpezifische Metadaten, die in Ihrer hochgeladenen Datei gesetzt werden.fileNameSie können diese Prop verwenden, um den hochgeladenen Dateinamen anzupassen. Sie können eine Funktion als Callback oder einen String verwenden, in dem Sie Platzhalter angeben, die durch die entsprechenden Werte ersetzt werden.{file}- Vollständiger Dateiname{file.name}- Dateiname ohne Erweiterung{file.ext}- Dateierweiterung{rand}- Zufallswert zur Vermeidung von Namenskollisionen{entityId}- ID der Entität{propertyKey}- ID dieser Eigenschaft{path}- Pfad dieser Entität
storagePathAbsoluter Pfad in Ihrem Bucket. Sie können eine Funktion als Callback oder einen String verwenden, in dem Sie Platzhalter angeben, die durch die entsprechenden Werte ersetzt werden.{file}- Vollständiger Dateiname{file.name}- Dateiname ohne Erweiterung{file.ext}- Dateierweiterung{rand}- Zufallswert zur Vermeidung von Namenskollisionen{entityId}- ID der Entität{propertyKey}- ID dieser Eigenschaft{path}- Pfad dieser Entität
includeBucketUrlWenn auftruegesetzt, speichert FireCMS eine vollständige Storage-URL anstelle nur des Speicherpfads. Für Firebase Storage ist dies einegs://...-URL, z.B.gs://my-bucket/path/to/file.png. Standardmäßigfalse.storeUrlWenn auftruegesetzt, zeigt dieses Flag an, dass die Download-URL der Datei in Firestore gespeichert wird anstelle des Cloud Storage-Pfads. Beachten Sie, dass die generierte URL möglicherweise einen Token verwendet, der bei Deaktivierung die URL unbrauchbar machen und den ursprünglichen Verweis auf Cloud Storage verlieren kann. Es wird daher nicht empfohlen, dieses Flag zu verwenden. Standardmäßigfalse.maxSizeMaximale Dateigröße in Bytes.processFileVerwenden Sie diesen Callback, um die Datei vor dem Hochladen zu verarbeiten. Wenn Sieundefinedzurückgeben, wird die Originaldatei hochgeladen.postProcessNachbearbeitung des gespeicherten Werts (Speicherpfad, Storage-URL oder Download-URL) nach der Auflösung.previewUrlStellen Sie eine benutzerdefinierte Vorschau-URL für einen bestimmten Dateinamen bereit.
Bilder: Größe ändern/komprimieren vor dem Hochladen
Abschnitt betitelt „Bilder: Größe ändern/komprimieren vor dem Hochladen“FireCMS unterstützt clientseitige Bildoptimierung vor dem Hochladen:
-
imageResize(empfohlen) Erweiterte Konfiguration für Bildgrößenänderung und -beschneidung. Wird nur auf Bilder angewendet (image/jpeg,image/png,image/webp).maxWidth,maxHeightmode:containodercoverformat:original,jpeg,png,webpquality: 0-100
-
imageCompression(veraltet) Legacy-Bildgrößenänderung/-komprimierung.
import { buildProperty } from "@firecms/core";
const imageProperty = buildProperty({ dataType: "string", storage: { mediaType: "image", storagePath: (context) => { return "images"; }, acceptedFiles: ["image/*"], fileName: (context) => { return context.file.name; }, includeBucketUrl: true, imageResize: { maxWidth: 1200, maxHeight: 1200, mode: "cover", format: "webp", quality: 85 } }});Wenn der Wert dieser Eigenschaft eine URL ist, können Sie dieses Flag
auf true setzen, um einen Link hinzuzufügen, oder einen der unterstützten Medientypen, um eine
Vorschau zu rendern.
import { buildProperty } from "@firecms/core";
const amazonLinkProperty = buildProperty({ dataType: "string", name: "Amazon link", url: true});Sie können auch den Vorschautyp für die URL definieren: image, video oder audio:
import { buildProperty } from "@firecms/core";
const imageProperty = buildProperty({ name: "Image", dataType: "string", url: "image",});Wenn auf true gesetzt, wird dieses Feld als E-Mail-Adresse validiert und
mit einem E-Mail-spezifischen Input gerendert. Nützlich für Kontaktformulare,
Benutzerprofile oder jedes Feld, das eine gültige E-Mail enthalten soll.
import { buildProperty } from "@firecms/core";
const emailProperty = buildProperty({ name: "Email", dataType: "string", email: true});userSelect
Abschnitt betitelt „userSelect“Diese Eigenschaft gibt an, dass der String eine Benutzer-ID ist und als Benutzerauswahl gerendert wird. Beachten Sie, dass die Benutzer-ID diejenige sein muss, die in Ihrem Authentifizierungsanbieter verwendet wird, z.B. Firebase Auth. Sie können auch einen Property Builder verwenden, um den Benutzerpfad dynamisch basierend auf anderen Werten der Entität anzugeben.
import { buildProperty } from "@firecms/core";
const assignedUserProperty = buildProperty({ name: "Assigned User", dataType: "string", userSelect: true});enumValues
Abschnitt betitelt „enumValues“Sie können die Enum-Werte verwenden, indem Sie eine Map möglicher exklusiver Werte bereitstellen, die die
Eigenschaft annehmen kann, zugeordnet zum Label, das im Dropdown angezeigt wird. Sie
können ein einfaches Objekt mit dem Format
value => label verwenden, oder mit dem Format value
=> EnumValueConfig, wenn Sie zusätzliche
Anpassungen benötigen (wie das Deaktivieren bestimmter Optionen oder das Zuweisen von Farben). Wenn Sie
die Reihenfolge der Elemente sicherstellen müssen, können Sie eine Map anstelle eines
einfachen Objekts übergeben.
import { buildProperty } from "@firecms/core";
const amazonLinkProperty = buildProperty({ dataType: "string", name: "Amazon link", enumValues: { "es": "Spanish", "de": "German", "en": "English", "it": "Italian", "fr": { id: "fr", label: "French", disabled: true } }});multiline
Abschnitt betitelt „multiline“Ist diese String-Eigenschaft lang genug, um in einem mehrzeiligen Feld angezeigt zu werden. Standardmäßig false. Wenn auf true gesetzt, passt sich die Anzahl der Zeilen an den Inhalt an.
import { buildProperty } from "@firecms/core";
const property = buildProperty({ name: "Description", dataType: "string", multiline: true});clearable
Abschnitt betitelt „clearable“Fügt ein Symbol zum Löschen des Werts hinzu und setzt ihn auf null. Standardmäßig false
markdown
Abschnitt betitelt „markdown“Soll diese String-Eigenschaft als Markdown-Feld angezeigt werden.
Wenn true, wird das Feld als Texteditor gerendert, der Markdown-
Hervorhebungssyntax unterstützt. Es enthält auch eine Vorschau des Ergebnisses.
import { buildProperty } from "@firecms/core";
const property = buildProperty({ dataType: "string", name: "Text", markdown: true});previewAsTag
Abschnitt betitelt „previewAsTag“Soll dieser String als Tag anstatt als Text gerendert werden.
import { buildProperty } from "@firecms/core";
const property = buildProperty({ name: "Tags", description: "Example of generic array", dataType: "array", of: { dataType: "string", previewAsTag: true }});validation
Abschnitt betitelt „validation“requiredSoll dieses Feld obligatorisch sein.requiredMessageMeldung bei Validierungsfehler.uniqueDer Wert dieses Felds muss in dieser Sammlung eindeutig sein.uniqueInArrayWenn auftruegesetzt, darf der Benutzer den Wert dieser Eigenschaft nur einmal im übergeordnetenArrayPropertyhaben. Funktioniert bei direkten Kind-Eigenschaften oder bei Kindern der ersten Ebene einesMapProperty(wenn als.of-Eigenschaft desArrayPropertygesetzt).lengthLegt die erforderliche Länge für den String-Wert fest.minLegt eine Mindestlänge für den String-Wert fest.maxLegt eine Maximallänge für den String-Wert fest.matchesGeben Sie einen beliebigen Regex zum Abgleichen des Werts an.emailValidiert den Wert als E-Mail-Adresse über einen Regex.urlValidiert den Wert als gültige URL über einen Regex.trimTransformiert String-Werte durch Entfernen von führenden und abschließenden Leerzeichen.lowercaseTransformiert den String-Wert in Kleinbuchstaben.uppercaseTransformiert den String-Wert in Großbuchstaben.
Basierend auf Ihrer Konfiguration werden folgende Formular-Widgets erstellt:
TextFieldBindinggenerisches TextfeldSelectFieldBindingwennenumValuesin der String-Konfiguration gesetzt sind, rendert dieses Feld eine Auswahl, bei der jede Option ein farbiger Chip ist.StorageUploadFieldBindingdie Eigenschaft hat eine Speicherkonfiguration.MarkdownEditorFieldBinding.die Eigenschaft hat eine Markdown-Konfiguration.
Links: