Czy istnieje sposób na import CSV lub JSON do Firewall Firebase jak w bazie danych w czasie rzeczywistym firebase?Jak zaimportować CSV lub JSON do firewalla chmura firewall
Odpowiedz
Nie ma, będziesz musiał napisać własny skrypt w tym czasie.
czy masz jakieś linki, jak napisać skrypt, dzięki! – Ted
Od tej chwili nie można .. firestore tworzy struktury danych w innym formacie niż przy użyciu kolekcji, a każda kolekcja zawiera serię dokumentów, które następnie są przechowywane w formacie JSON. W przyszłości mogą utworzyć narzędzie do konwersji JSON do FireStore .. odniesienia dla sprawdzenia tego na
: https://cloud.google.com/firestore/docs/concepts/structure-data
**** EDIT: ****
można zautomatyzować proces do pewnego stopnia, to znaczy napisz fałszywe oprogramowanie, które przesyła tylko pola danych CSV lub JSON do swojej bazy danych Cloud Firestore DB. I przeniesione całe bazy mój making tylko prostą aplikację, która pobrane mojego DB i pchnął go na FireStore
https://gist.github.com/JoeRoddy/1c706b77ca676bfc0983880f6e9aa8c8
To powinno działać dla obiektu obiektów (ogólnie jak stary Firebase json jest ustawione). Możesz dodać ten kod do aplikacji, która jest już skonfigurowana w Firestore.
Upewnij się tylko, że wskazałeś właściwy plik JSON.
Powodzenia!
Potrzebny jest do tego niestandardowy skrypt.
pisałem jedną oparciu o opiekunie SDK Firebase dopóki Firebase biblioteka nie pozwala importowanie zagnieżdżonych tablic danych.
const admin = require('./node_modules/firebase-admin');
const serviceAccount = require("./service-key.json");
const data = require("./data.json");
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: "https://YOUR_DB.firebaseio.com"
});
data && Object.keys(data).forEach(key => {
const nestedContent = data[key];
if (typeof nestedContent === "object") {
Object.keys(nestedContent).forEach(docTitle => {
admin.firestore()
.collection(key)
.doc(docTitle)
.set(nestedContent[docTitle])
.then((res) => {
console.log("Document successfully written!");
})
.catch((error) => {
console.error("Error writing document: ", error);
});
});
}
});
Aktualizacja: napisałem artykuł na ten temat - Filling Firestore with data
ogólne rozwiązanie
ja znalazłem wiele nabiera skrypt pozwalający załadować JSON ale żaden z nich dozwolone sub-kolekcje. Powyższy skrypt obsługuje każdy poziom zagnieżdżania i sub-kolekcji. Zajmuje się również przypadkiem, w którym dokument ma własne dane i podzbiory. Jest to oparte na założeniu, że kolekcja to tablica/obiekt obiektów (w tym pusty obiekt lub tablica).
Aby uruchomić skrypt, upewnij się, że masz zainstalowane npm i węzeł. Następnie uruchom swój kod pod numerem node <name of the file>
. Uwaga: nie ma potrzeby wdrażania go jako funkcji chmurowej.
const admin = require('../functions/node_modules/firebase-admin');
const serviceAccount = require("./service-key.json");
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: "https://<your-database-name>.firebaseio.com"
});
const data = require("./fakedb.json");
/**
* Data is a collection if
* - it has a odd depth
* - contains only objects or contains no objects.
*/
function isCollection(data, path, depth) {
if (
typeof data != 'object' ||
data == null ||
data.length === 0 ||
isEmpty(data)
) {
return false;
}
for (const key in data) {
if (typeof data[key] != 'object' || data[key] == null) {
// If there is at least one non-object item then it data then it cannot be collection.
return false;
}
}
return true;
}
// Checks if object is empty.
function isEmpty(obj) {
for(const key in obj) {
if(obj.hasOwnProperty(key)) {
return false;
}
}
return true;
}
async function upload(data, path) {
return await admin.firestore()
.doc(path.join('/'))
.set(data)
.then(() => console.log(`Document ${path.join('/')} uploaded.`))
.catch(() => console.error(`Could not write document ${path.join('/')}.`));
}
/**
*
*/
async function resolve(data, path = []) {
if (path.length > 0 && path.length % 2 == 0) {
// Document's length of path is always even, however, one of keys can actually be a collection.
// Copy an object.
const documentData = Object.assign({}, data);
for (const key in data) {
// Resolve each collection and remove it from document data.
if (isCollection(data[key], [...path, key])) {
// Remove a collection from the document data.
delete documentData[key];
// Resolve a colleciton.
resolve(data[key], [...path, key]);
}
}
// If document is empty then it means it only consisted of collections.
if (!isEmpty(documentData)) {
// Upload a document free of collections.
await upload(documentData, path);
}
} else {
// Collection's length of is always odd.
for (const key in data) {
// Resolve each collection.
await resolve(data[key], [...path, key]);
}
}
}
resolve(data);
To zadziałało dla mnie, jest to o wiele lepsze (solidne i ogólne) rozwiązanie niż jeden z Mikki. Użyj tego - konfiguracja jest taka sama, więc wypróbuj albo ten jeden, albo ten z Mikki bardzo łatwo - po prostu zastąpienie rzeczywistego kodu. – inteist
@Maciej Caputa, Twoje rozwiązanie działa świetnie. Dzięki. Czy możesz jednak zasugerować, jak zmodyfikowałbyś fakedb.json tak, by generował auto id, a nie sekwencję - 1, 2, 3, ... – Rinav
@Rinav Możesz mieć tablicę traktowaną jako kolekcję z automatycznym ID lub sekwencja 0,1,2,3 ... Wszystko zależy od struktury twojego pliku JSON. Wszystko sprowadza się do faktu, że tablica na właściwości z parzystą liczbą elementów na ścieżce będzie traktowana jako sekwencja, a jeśli będzie nieparzysta, będzie traktowana jako kolekcja. Zaimplementowałem to w ten sposób, ale zauważ, że jest to zgodne tylko ze specyfikacją Firebase. Zastanawiam się, kiedy Firebase wdroży to w narzędziach firefase. –
Dla odniesienia. Napisałem funkcję, która pomaga importować i eksportować dane w Firestore.
- 1. Jak zaimportować CSV do Trello
- 2. CSV do JSON skryptu
- 3. Jak wyeksportować do pliku CSV lub JSON Excel - kątowa 2
- 4. jak zaimportować ogromne .csv do bazy danych sql?
- 5. konwersja CSV/XLS do JSON?
- 6. jak zaimportować plik csv do mysql przy użyciu pliku node.js?
- 7. Import CSV/JSON w jaderze
- 8. Obliczanie rozmiaru wiadomości Firewalla
- 9. jak zaimportować plik json w mongodb?
- 10. zagnieżdżone JSON z CSV
- 11. csv do konwersji json z pytonem
- 12. jak zaimportować dane json w neo4j
- 13. CSV do JSON w maszynie maszynowej
- 14. makro, aby zaimportować plik CSV do arkusza nieaktywnego programu Excel
- 15. Jak zaimportować Mongodb ObjectId z pliku CSV za pomocą mongoimport?
- 16. Jak mogę zaimportować plik CSV za pomocą zadania rake?
- 17. Chmura Firestore: Brak lub niewystarczające uprawnienia
- 18. Powershell convertfrom-json | ConvertTo-CSV
- 19. Wiosenna chmura - SQS
- 20. Konwersja CSV do przyjaznego dla mongoimport JSON przy użyciu Pythona
- 21. Kreator importu tabeli mysql nie może zaimportować pliku csv
- 22. Python MySQL Eksport CSV do json dziwne kodowanie
- 23. Jak zaimportować dane do SAP
- 24. Jak zaimportować rules.csv do sonaru?
- 25. Czy mogę zaimportować plik CSV i automatycznie wyprowadzić separator?
- 26. Początkujący użytkownik próbuje dowiedzieć się, jak zaimportować prosty plik CSV do R
- 27. Pobierz stronę klienta Json jako CSV
- 28. Jak zaimportować plik .dmp (Oracle) do MySql DB?
- 29. przekształcania obiektu json do formatu csv w javascript
- 30. Jak zaimportować/dołączyć do arkusza stylów zamknięcia?
Patrz mój post na ogólne rozwiązania, manipulowania podrzędne colleciotions też. –