Firebaseリアルタイムデータベースを使用しているアプリケーションデータベースを新しいCloud Firestoreデータベースに移行する最適な方法を探しています。私が作業しているプロジェクトについては確信しています。私はデータスキーマの変更を行う必要はないので、私はそれをマップするだけです。 Firebaseは自分のサイトでこれを行うためのスクリプトを書くことを提案していますが、私はそれについて最善の方法を知りません。誰でもすでにこれを達成するスクリプトを作っていますか?Firebase Realtime DatabaseをFirestoreに移行
答えて
私は、すばやく汚い方法で物事を移行し、それは非常にうまくいった小さなノードスクリプトを書いた。
他の誰かが興味を持っているのは以下のとおりです。
注:実行するにはFirestoreでフラットにも
をあなたのデータを維持する上で、リアルタイムデータベース内のデータモデルは、完全に平らだったと多くのネストされたデータを持っていなかった場合にのみ使用してください、あなたが意図しこのスクリプトはindex.jsというノードファイルを作成し、サービスデータベースファイルとraw jsonファイルとともにディレクトリにスローし、リアルタイムデータベースからエクスポートし、コマンドラインから以下を実行します。
$ node index.js
下記のスクリプト実装。
const admin = require('firebase-admin');
var serviceAccount = require("./config.json");
var database = require("./database.json");
var async = require ('async');
admin.initializeApp({
credential: admin.credential.cert(serviceAccount)
});
var db = admin.firestore();
var allEntityNames = Object.keys(database);
var asyncTasks = [];
for (var i in allEntityNames) {
var entityName = allEntityNames[i];
var entity = database[entityName];
var entityKeys = Object.keys(entity);
console.log("began migrating "+ entityName);
for (var j in entityKeys) {
var entityKey = entityKeys[j];
var dict = entity[entityKey];
asyncTasks.push(function(callback){
db.collection(entityName).doc(entityKey).set(dict)
.then(function() {
callback();
})
.catch(function(error) {
console.log(error);
callback();
});
});
}
async.parallel(asyncTasks, function(){
console.log("Finished migrating "+ entityName);
});
}
こんにちは、私は同じ
import { AngularFirestore, AngularFirestoreCollection } from 'angularfire2/firestore';
import { AngularFireDatabase } from 'angularfire2/database';
constructor(private afs: AngularFirestore, private angularfire: AngularFireDatabase) {}
convert() {
this.itemsCollection = this.afs.collection('requests');//ref()
this.angularfire.list('/requests/').auditTrail().subscribe((data: any) => {
_.each(data, element =>{
this.itemsCollection.doc(element.key).set(element.payload.val()) .then((result) => { }); }); });}
これを実行する手順を追加できますか? – Luke
yes 1)firebaseプロジェクトを設定してから 2)TSファイル に追加します。 'AngularFirestore、AngularFirestoreCollection}は' angularfire2/firestore 'からインポートします。 'AngularFireDatabase}を' angularfire2/database 'からインポートします。 コンストラクタ(private afs:AngularFirestore、private anglefire:AngularFireDatabase){} convert(){ this.itemsCollection = this.afs.collection( 'requests'); // ref() this.angularfire.list( '/ { } .each(data、element => { this.itemsCollection.doc(element.key).set(element.payload.val()は、 ));});});});});}) –
- 1. Firebase RealTime Database + Googleログイン
- 2. Firebase HostingとFirebase Realtime Database/Storageをどのように統合できますか?
- 3. Firebase Realtime Databaseで特定のノードを取り出す方法は?
- 4. Firebase Realtime Databaseからデータを取得できません
- 5. AndroidでFirebase Realtime Databaseからデータを取得する
- 6. Swift 4のJSONDecoderをFirebase Realtime Databaseで使用できますか?
- 7. 「removeEventListener」(アンドロイド)はFirebase Realtime Databaseの接続を閉じますか?
- 8. Firebase Firestore
- 9. GoでのFirebase Realtime Databaseのサービスアカウントの認証
- 10. Firebase Realtime Databaseと同等のAWSは何ですか?
- 11. Realtime DatabaseのようにCloud Firestoreで「一括」削除コレクションを使用できないのはなぜですか?
- 12. オフラインサポートを有効にしてFirebase Realtime Databaseの帯域幅を節約する
- 13. Firebase Realtime Databaseはリスナーに値を送信するのが遅くなります
- 14. 生成されたGUID値をFirebase Realtime Database(web)に挿入する方法は?
- 15. Firebase Realtime DatabaseからJSONツリーの1つのキーにアクセスする方法は?
- 16. OAuth2.0サーバとしてFirebase Realtimeデータベース/ Firestoreを使用できますか?
- 17. イメージをFirebaseにアップロードすると、Database RealtimeのイメージURLがfirebaseストレージとは異なるイメージURLです。
- 18. Firebase Realtime Databaseへのクラウド機能の書き込みがタイムアウトします
- 19. Firebase firestoreクラウドファンクション「トリガータイプが不明」
- 20. Firebase Cloud Functions/Firestore
- 21. Firebase Realtime DatabaseにWebSocketを使用させるにはどうしたらいいですか?
- 22. Androidとfirebase-database
- 23. Firebase Database Slow Observing
- 24. Firebase Token Multiple Database
- 25. iOS firebase-databaseクエリ
- 26. Firebase Realtime Databaseのlong値は、0以外の場合でも常に0を返します。
- 27. Firebase - Cloud FirestoreトリガーIdempotency
- 28. Firebase Firestore RESTの例
- 29. Firestoreの設定 - Firebase
- 30. Firebase Realtime Databaseのルールにより、認証されたユーザからの書き込みが許可されない
https://firebase.google.com/docs/firestore/firestore-for-rtdb –
うん、そのリンクを認識するためにスクリプトを作成しますが、しています彼らは基本的にちょうどスクリプトを書くことを示唆していますが、それはこの質問が求めているものではありません。 – Luke
これは一般的なスクリプトを持っている人はいないでしょう。なぜなら、各人の特定のユースケースや要件には慣れ親しんだからです。 –