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

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

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

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

JavaScript

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

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

Q&A

2回答

363閲覧

Firebaseでのdatabaseからの値の読み込みについて

psp7

総合スコア11

Firebase

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

JavaScript

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

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

0グッド

0クリップ

投稿2017/11/26 07:14

編集2017/11/26 07:16

Firebaseを初めて使っているのですが、databaseからの値の読み取り方がよくわかりません。

データベース内のJsonは以下のような構成です。
ここからtweets以下のtextの値を、{text:test},{text:test},{text:test}...といったような形で配列に格納したいと考えています。

json

1{ 2 "tweets" : { 3 "-KzqcjiqOObM4xWgnV6m" : { 4 "text" : "test" 5 }, 6 "-Kzqd01BsRVOSs1sSdVj" : { 7 "text" : "test" 8 }, 9 "-KzqdMxli8vFLLwrR9yo" : { 10 "text" : "test" 11 }, 12 "-KzqddqAIIHHHK0kjThI" : { 13 "text" : "test" 14 } 15 } 16}

プログラムでは

React.js

1var firebaseRef = firebase.database().ref(); 2var tweetsRef = firebaseRef.child("tweets"); 3 4//略 5 6constructor(props) { 7 super(props); 8 this.state = {tweets: [] 9 }; 10 console.log("initialized"); 11 } 12 13 componentDidMount(){ 14 tweetsRef.on("value", function(snapshot){ 15 this.setState({ 16 tweets: snapshot.val() 17 }); 18 }); 19 } 20//略

といったように記述しているのですが、this.statのtweetsに値が入ってくれません。
snapshotとstateの型が違うからなのかと考え色々試してみましたが、どうしても読み込むことができず、詰まってしまっています。

firebaseについて詳しい型がいらっしゃいましたら、おかしな点についてご指摘いただければと思います。
よろしくお願い致します。

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

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

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

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

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

guest

回答2

0

componentDidMount(){ tweetsRef.on("value", (snapshot) => { this.setState({ tweets: snapshot.val() }); }); }

これでどうですか.
setStateが実行されている関数でthisがbindされていないようにおもえます

投稿2019/02/22 12:03

hfidk

総合スコア18

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

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

0

そもそもですが,ReactFireを使ってしまうというのはいかがでしょう.

投稿2017/11/27 10:24

Yatima

総合スコア1159

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問