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

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

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

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

JavaScript

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

Q&A

1回答

2098閲覧

firebaseのrealtimedatabaseの値が何故か取得できない

you88

総合スコア147

Firebase

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

JavaScript

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

0グッド

0クリップ

投稿2018/12/23 08:25

編集2018/12/24 01:44

firebaseのrealtimedatabaseを下記のように保存しています。

イメージ説明

これのcontentを配列で引っ張ってきたいんですがなぜかうまくいきません。。。
nuxtで下記のコードで書いているのですがcreatedで引っ張るところがわかっていません。

<template> </template> <script> import firebase from '@/plugins/firebase' import { mapState } from 'vuex' export default { name: 'mypage', props: ['user'], data (context) { // コンポーネントをロードする前に毎回呼び出されます return { note_content: 'hello', notes:[]} }, // DOMが作成されたときに値を代入する created: // ここがうまく書けない。 computed: { ...mapState({ mypageUrl: (state) => `/user/${state.uid}` }) }, methods: { saveContent: function(value) { // 新しいテキストのためのキーを取得 var newNoteKey = firebase.database().ref().child('notes').push().key; var today = Date.now(); firebase .database() .ref('notes/' + this.user.uid + '/' + newNoteKey) .set({content:value,date:today}); } } /*以下省略*/ } </script>

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

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

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

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

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

shou6

2018/12/23 09:52

ご自身で書かれたコードも載せて頂いた方がいいかと思います。
you88

2018/12/24 01:44

ご指摘ありがとうございます!追記しました!
guest

回答1

0

これで取得出来ます。
firebaseから取得するメソッドを作って、created()で呼び出せば大丈夫です。

あと質問はそのままにしない方が良いかと思います。
過去の質問
同じ様な質問ですよね。

vue

1<template> 2 <div> 3 <h1>test page</h1> 4 <div v-for="(data, key) in notes" :key="key">key:{{ key }} ⇒ value:{{ data }}</div> 5 </div> 6</template> 7 8<script> 9import { database } from "@/services/fireinit.js" 10// import { mapState } from "vuex" 11 12export default { 13 props: ["user"], 14 data() { 15 return { 16 note_content: "hello", 17 notes: [] 18 } 19 }, 20 created() { 21 this.fetchData() 22 }, 23 computed: { 24 ...mapState({ 25 // mypageUrl: state => `/user/${state.uid}` 26 }) 27 }, 28 methods: { 29 saveContent(value) { 30 // const newNoteKey = database 31 // .ref() 32 // .child("note-test") 33 // .push().key 34 // const today = Date.now() 35 // database.ref(`notes/${this.user.uid}/${newNoteKey}`).set({ content: value, date: today }) 36 }, 37 async fetchData() { 38 await database.ref("note-test/abcdefgh").once("value", snapshop => { 39 this.notes = snapshop.val() || [] 40 }) 41 } 42 } 43} 44</script> 45

js

1# fireinit.js 2 3import * as firebase from "firebase/app" 4import "firebase/database" 5import "firebase/storage" 6 7const config = { 8 apiKey: <your key>, 9 authDomain: <your key>, 10 databaseURL: <your key>, 11 projectId: <your key>, 12 storageBucket: <your key>, 13 messagingSenderId: <your key> 14} 15 16!firebase.apps.length ? firebase.initializeApp(config) : "" 17export const database = firebase.database() 18export const storage = firebase.storage() 19export default firebase

json

1# firebase 2 3{ 4 "note-test" : { 5 "abcdefgh" : { 6 "100" : "あ", 7 "101" : "い", 8 "103" : "う" 9 } 10 } 11}

投稿2018/12/24 16:31

編集2018/12/24 16:34
shou6

総合スコア305

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

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

you88

2018/12/25 13:23

すみません、説明が下手でやりたいことと微妙に違います。。。 <div v-for="(data, key) in notes" :key="key">key:{{ key }} ⇒ value:{{ data }}</div> で展開するのはできているのですがnotesのcontentのみを配列で引っ張ってこれず。。。あとjavascript内で展開したいのですがそれがどうしてもできず。。。
shou6

2018/12/26 02:49 編集

いえ、中身を展開したのは分かりやすくする為です。 あとはただのオブジェクトなので、contentを取得したいならばオブジェクト操作をしてあげるだけかと思うのですが・・ 何がしたいのかが分かりません。 引用--------------------------------------------------------------------------------------------------- database.ref(`notes/${this.user.uid}/${newNoteKey}`).set({ content: value, date: today }) -------------------------------------------------------------------------------------------------------- ご自身でidとkeyを入れてデータベースに格納してる訳ですから、そのキーでオブジェクト取れますよね? notesから引っ張ってきたのなら、 this.notes[this.user.uid][newNoteKey] で { content:〇〇, date:〇〇 } が取得出来ます。
you88

2018/12/29 06:05

提示してもらった方法で何故か引っ張れないのでなんでだろうという質問でした。。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問