1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Firebase Version8とversion9のコードの違い

Last updated at Posted at 2021-11-22

#対象者
・これからFirebaseを始めるすべての人
・2021年8月25日(firebase v9.0.0リリース)より前に作られた参考書等を使っている人
※この記事は2021年11月22日に書いたものです

#この記事を書いた経緯
さっそく余談ですが、この記事を書いた経緯を簡単に紹介します。

先月、プログラミング初心者としてVueを学習するにあたり、出来るだけ新しく出版された参考書がいいと思い、2020年12月出版の参考書を購入しました。

しかし、Firebaseの章において手順通りインストール等しても、コードが全く異なっていました。
調べてもほとんど情報が無かったのですが、結果的にはドキュメントを読めば即解決。業界的に技術のサイクルが早いのはわかっていましたが、ここまでとは驚きました(笑)

ということで、私のような初心者の方が、余計な学習時間を使わなくて済むよう今回記事にしました。

#Version8とVersion9の違い

今回のバージョンアップによる新旧の違いは、超ざっくり言うと以下です。
v8⇒Firebaseの機能をまとめて使用可能にする
v9⇒Firebaseの機能を必要な部分だけインポートして使う

つまりメリットはコードが最小限になることで**”読み込みが速くなる”**ということ

#互換性について
機能やオプションは非常に似ています完全な互換性はありません。そのためバージョンアップにはコードの修正が必要になります。

しかし、v8とv9のコードを共存させることは可能です。
※今回はコードの共存については触れてないため、これについては公式ドキュメント等ご参照ください。

#コードの違い
記事の最後に公式ドキュメントのリンクを記載しますが、v8とv9のコードは、引用すると以下のような違いになっています。

まずは、v8です。

//v8
var config = {
  apiKey: "apiKey",
  authDomain: "projectId.firebaseapp.com",
  databaseURL: "https://databaseName.firebaseio.com",
 storageBucket: "bucket.appspot.com"
  };
firebase.initializeApp(config);
var database = firebase.database();

続いてv9です。

//v9
import { initializeApp } from 'firebase/app';
import { getDatabase } from "firebase/database";

const firebaseConfig = {
  apiKey: "apiKey",
  authDomain: "projectId.firebaseapp.com",
  databaseURL: "https://databaseName.firebaseio.com",
  storageBucket: "bucket.appspot.com"
};

const app = initializeApp(firebaseConfig);

const database = getDatabase(app);

データの読み書きする場合のコード例は以下です。

まずは、v8です。

//v8
function writeUserData(userId, name, email, imageUrl) {
  firebase.database().ref('users/' + userId).set({
    username: name,
    email: email,
    profile_picture : imageUrl
  });
}

続いてv9です。

//v9
import { getDatabase, ref, set } from "firebase/database";

function writeUserData(userId, name, email, imageUrl) {
  const db = getDatabase();
  set(ref(db, 'users/' + userId), {
    username: name,
    email: email,
    profile_picture : imageUrl
  });
}

コードの違いについては以上です。

#参考したサイトなど
Firebase Documentation-スタートガイド
Firebase Documentation-データの読み取りと書き込み
これからFirebaseでプロジェクトを始めようとする全ての人が知っておくべきこと v8→v9リリース

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?