※ 引述《jp956956 (儲備里長伯)》之銘言:
: https://imgur.com/UIr0fyc
: 大家好
: 最近用firebase做網頁
: 就照著她的範本下去做修改
: 現在想要做出一個點擊圖片可切換內容的效果
: 比如
: 點了香蕉的圖片 就會取得香蕉的內容
: 點了蘋果的圖片 就會取得蘋果的內容
: 做了一個沒有問題發生
: 點擊香蕉圖片確實連到的database裡面
: 節取出來裡面的資料內容
: 後來再用相同方法去做蘋果的圖片
: 點擊進去卻發生了香蕉跟蘋果的內容一起出現
: 我定義的var名稱是不同的還有資料路徑也是不同
: 但是卻發生兩個同時顯示的事情
: 我在想是雖然定義了兩個
: 但是兩個都會同時作用
: 所以才會不管點擊哪一個圖片
: 都會取得全部的內容
: 所以想說應該使用function的方式去解決問題
: 讓它一次只作用一個函數
: var houseRef = firebase.database().ref('housecontain/香蕉');
這段程式碼的翻譯:
定義houseRef是個Ref Object,參照路徑是'housecontain/香蕉'
欸諾...要是個Ref Object才讀得到值這個不用解釋了吧
: 他一開始是這個變數 可以正常的去抓到資料顯示
: 後來我改成
: var houseRef = function house(name){
: return firebase.database().ref('housecontain/' + name);
: };
正確步驟:
1. 用arrow function定義創造凾式
var houseRefCreator = (name) => firebase.database().ref('housecontain/' + name)
2. 創造Ref object
var ref_of_somthing = houseRefCreator('something')
上述步驟的翻譯:
步驟1
houseRefCreator是一個[Ref object創造凾式],
創造出來的Ref object的參照路徑為['housecontain' + 某個名字]
步驟2
ref_of_something是一個[Ref object創造凾式]拿了'something'創造出來的Ref object
使用ref_of_somthing可讀到'housecontain/something'路徑的值
: 就無法順利作用了
: 不知道是我沒有把name輸入還是我函式定義錯誤了
: 卡在這邊不知道要如何輸入它的[email protected]@
: listeningFirebaseRefs.push(houseRef);
: fetchhouse(houseRef, houseSection);
fetchhouse拿Ref object才動得了
給他creator要嘛報錯,要嘛name就是undefined然後讀到root
: 它顯示的地方是這兩個
: 我也把houseRef改成 house()
: 不過一樣無法作用
: 不知道要怎麼樣才能把name值輸入
: 讓它可以抓到不同的資料呢?
建議
1. JS基礎語法的部分要加強一下,再練習firebase
2. code要貼就完整貼,懂的人可以直接幫你改成正確的code,不然講再多都是通靈,用圖片也是可以但總會缺上下文,缺上下文就是通靈的一種型態