質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

1回答

2595閲覧

firebaseにおけるsetとupdateの違いについて

tsubasa3010

総合スコア14

Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2020/04/19 02:09

javaScript

1const refMenu = firebase.database().ref().child(menuCopy); 2 var k={ 3 key:0 4 } 5 firebase.database().ref(menuCopy).update(k); 6 7refMenu.once('value').then(function(snapshot) { 8 const len = Object.keys(snapshot.val()).length; 9 glaphData.push(len-1); 10 });

![イメージ説明]
上記の処理でfirebase内のデータ『オレンジジュース』の下にあるデータの数を取得し、glaphDataという配列に入れるという処理をしています。
ただ、上記コードのupdateをsetに変えると『オレンジジュース』の下にはkey:0というデータしか残りませんでした。

そこで質問なのですが、setとupdateの違いは
update→key:0をkey:0に上書き
set→すべてのデータをkey:0に上書き
という理解であっていますでしょうか?

解答よろしくお願いします!

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

set without merge will overwrite a document or create it if it doesn't exist yet

set with merge will update fields in the document or create it if it doesn't exists
update will update fields but will fail if the document doesn't exist

書かれてあるとおりです。setはマージせず上書きし、指定したパスが無ければ作成する。ただしmergeオプションをつけた場合にはupdateと同様。updateはデータを削除せず上書きを行うがパスがない場合はエラー。

投稿2020/04/19 02:50

編集2020/04/19 03:18
soliste16

総合スコア757

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問