2017-12-16 12 views
1

私はfirebaseデータベースで作業しています。時々私は、データをダウンロードする際に、私は、ユーザーIDと機能にIDを渡すfirebaseにデータを保存すると配列が返されます

const ref = firebase.database().ref(`users/${userID}/likes/${ID}`); 
ref.set(ID); 

、値がfirebaseに正しい作成されますが: ユーザの行動の後、私は新しい参照を作成し、いくつかのデータを設定します私はオブジェクトのリストの代わりに配列を持っています。私は何が間違っているのか分かりません。あなたの例から

答えて

2

const ref = firebase.database().ref(`users/${userID}/likes/${ID}`); 

ref.set(ID);

IDが何であれ二重にネスティングしているようです。あなたの参照は、その名前が何であってもあなたのIDが(それが何であれ)新しく作成されたルート(オブジェクトでもあります)の中に設定されているという好きな名前の後に新しいルートを作成します。ユーザーが好きな投稿(または何か)をクライアント側で配列にパッケージ化してからusers/$ {userID}/likesに設定すると、参照を作成しようとしています。

あなたは、このユーザーにREFスナップショットを検索する場合の例で

let account = {} 
     account.email = email.toLowerCase() 
     account.uid = authData.uid 
     account.username = username 



firebase.database().ref('users/' + authData.uid).set({ 
      account 
     }) 

..情報をサインアップするが、それはすべて同じプロセスで使用することは、場合にもデータにアクセスすることができ、単一のアカウントオブジェクトを取得しますuidをしていますそれを配列として設定します。

(あなたがfirebaseを使用する場合)あなたは...

また
let likedPosts = [] 
likedPosts.push(new data from user interactions) 
firebase.database().ref(users/${userID}/likes).set({ 
      likedPosts 
     }) 

、おそらく最良の方法で、この例に従うことができるが、このデモに従うと、ユーザー/ $ {ユーザID}に.pushすることです/好きです。私は一意のIDを持つオブジェクトのオブジェクトを作成するので、このメソッドが嫌いです。 map、filter、reduceのような基本的なjavascriptヘルパー関数を使うことができないので、このデータを扱うのは難しいです。

https://firebase.google.com/docs/database/web/lists-of-data

関連する問題