如何将我的 Firebase 实时数据库转移到 Firebase Cloud Firestore

Posted

技术标签:

【中文标题】如何将我的 Firebase 实时数据库转移到 Firebase Cloud Firestore【英文标题】:How to transfer my Firebase Realtime database to Firebase Cloud Firestore 【发布时间】:2019-04-02 05:54:18 【问题描述】:

我已经在使用 Firebase 实时数据库,但现在 Firebase 已经为数据库推出了 Cloud Firestore,所以我如何将我的数据从实时数据库传输到 Firestore,因为我已经有用户并且他们在 android 应用程序上使用实时数据库。

那么,有没有办法可以将数据库转移到 Firestore?

【问题讨论】:

这是一个重复的问题。请看***.com/questions/46639693/… 【参考方案1】:

如果您正在寻找可以将您的数据库从Realtime Database 转换为Cloud Firestore 的神奇按钮,那么没有!据我所知,Firebase 的创建者不会创建一个。所以很遗憾,您需要自己转换数据库。

【讨论】:

是的,我想通了。谢谢!【参考方案2】:

Firebase 已发布 guide,用于从实时数据库迁移到 Cloud Firestore。

编辑:他们似乎更改了该页面。 Here 是他们之前发布的迁移指南的缓存版本。

【讨论】:

我没有看到迁移,只是比较? @Whitebird 看起来他们已经更改了该页面。我已经用他们以前的迁移指南的缓存版本编辑了我的答案。 在那个页面上他们只告诉你可以做到这一点,但没有具体说明如何做到这一点。【参考方案3】:

我不建议您现在更改,它仍处于 BETA 版本,并且他们时不时会推出新东西。我建议等待。 让他们先下定决心:P

【讨论】:

yaa,甚至还没有合适的方法来做到这一点。【参考方案4】:

我制作了一个脚本,用于将数据从 firebase 转换为 firestore

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) => 
      );
  );
);

【讨论】:

以上是关于如何将我的 Firebase 实时数据库转移到 Firebase Cloud Firestore的主要内容,如果未能解决你的问题,请参考以下文章

如何将我的用户的支出与他们在 Firebase 中的个人资料相关联?

如何将我的 MySQL 数据库转移到另一台计算机?

在 Firebase 实时数据库中保存数据 Android Studio Kotlin

多次调用 Cloud Functions for Firebase

如何防止未经授权访问我的 Firebase 实时数据库?

用户可以使用新数据时如何发送 Firebase 通知?