私は特定のリクエストを作成するロジックをどこからでも探してきましたが、私はFirebaseの考え方を完全には理解していません。これは私のデータ構造である:私の最初のオプションは、ユーザIDに関するデータを取得する要求になりFirebase - idに基づくスナップショット
`users:{
u1_id:{...}
u2_id:{...}
...
},
contacts:{
u1_id:{
contact1_id,
contact2_id,
...
}
}`
、二番目の(実際のもの)は、彼らが「ときの連絡先から、私は必要なデータを格納することです再追加されましたが、各ユーザーの連絡先ごとに大きな更新プログラムを実行する必要があり、それは適切なソリューションではないようです。
を(私が質問、firebaseドキュメントやビデオをチェックしてきました)私が見つけた最も近いソリューションは、この(自分のユーチューブから)です:
function getUserContacts(key, cb){
const rootRef = firebase.database().ref()
const contactsRef = rootRef.child('contacts')
const usersRef = rootRef.child('users')
contactsRef.child(key).on('child_added', snap => {
let userRef = usersRef.child(snap.key)
userRef.once('value', cb)
})
}
それがすべてと対象物1によりユーザーに1を与えず私のユーザー
編集:私の一時的な解決策 - >
firebase.database().ref('users')
.on('value', snaps => {
firebase.database().ref(`contacts/${currentUser.uid}`)
.on('value', snapshot => {
let userContacts = []
snapshot.forEach(snapc => {
snaps.forEach(snapu => {
let duser = snapu
if(snapc.key == snapu.key)
{
userContacts.push(snapu.val())
}
})
})
dispatch({
type: CONTACTS_FETCH,
payload: userContacts
})
})
})
これは、少なくともかなり漠然と問題であり、私には、不明で何尋ねている。最初に、ユーザーIDに関するデータを取得する必要があります。どういう意味ですか? users/user_id_xノードからデータを取得しますか? 2番目の項目は*大きな更新*と言います。それは何ですか、あなたはそれを大きく更新していますか? – Jay
あなたの答えをありがとう。連絡先ツリーには、ユーザーの連絡先リストに追加されたユーザーのIDのみが格納されます。私が望むのは、これらのユーザーの詳細を連絡先リストに表示することだけです。更新の問題は、各連絡先のIDではなくデータを保存する場合です。たとえば、ユーザーの変更がニックネームの場合、この連絡先を持つ各ユーザーのすべての発生を更新する必要があります。 – Sai
それはまだ不明です。リストに連絡先情報を入力しますか?言い換えれば、連絡先のIDを読んで、リストを繰り返し、各連絡先を読み込みますか? – Jay