2

我正在學習JavaScript,我正在嘗試在特定域中構建社交應用。沒有像往常一樣大的社交網絡,因爲它是爲了一個小型社區。如何從Firebase應用中檢索其他用戶?

  1. 所以我用火力地堡,JavaScript的ES6只有一個與<app> HTML文件。我已經擁有和auth系統,當前用戶的配置文件頁面。但我的問題是,我不知道,瞭解從其他人的個人資料頁面的方式。

    因此,據我所知,這是從Firebase數據庫獲取其他用戶的信息。但我困在我的腦海裏。我應該爲每個用戶創建一個HTML文件嗎?我不這麼認爲?

    該項目用於認證。

  2. 而我的其他問題是,也不能從數據進行驗證。那麼我成功地檢查數據是否存在,但它不會阻止進程,因此它會更新,並獲得2名具有相同名稱的用戶(請參閱下面的代碼)。

firebase Atom

 savePrenom(event){ 
     let database = firebase.database(); 
     event.preventDefault(); 
     let uid = firebase.auth().currentUser.uid; 
     database.ref('users').once('value', (snapshot)=>{ 
      snapshot.forEach(el=>{ 

      if(prenom.value === el.val().prenom){ 
       console.log('existe déjà'); 

      } 
      if (prenom.value != el.val().prenom){ 
        savePrenom.style.display= 'none'; 
        editPrenom.style.display= 'block'; 
        prenom.disabled = true; 
        database.ref('users/'+uid).update({ 
         prenom: prenom.value 
        }) 
      } 
      }) 
     }); 

    } 
+0

通常情況下,如果您有緊急支持要求,我建議您通過AirPair或TopTal支付一對一援助。然而,由於這是一個認證,你可能在學術誠信規定下,所以我不會建議讓某人做太多的事情。 – halfer

+0

這可能過於寬泛,所以我會建議重寫它(a),這樣它只有一個問題,並且(b)有一些代碼顯示你已經嘗試過。據我瞭解,Firebase已託管,因此您只需爲當前用戶發出查詢(使用cookie或授權令牌)並獲取要在JavaScript模板或HTML字符串中呈現的數據。 – halfer

+0

是的,我知道我認爲我可以管理它,沒有人需要爲我做這份工作。但只需要幫助。 – rokalex

回答

0

好男人抱歉沒有迴應所有問題/答案,但我得到了兩個解決方案。

第一個。因爲我可以從用戶那裏獲取信息,只需添加一些數據類來傳遞我可以從Firebase獲得的數據。但他們是一個更簡單的解決方案從我可以獲得用戶內部的任何信息的那一刻起,我可以使用snapshot.key(我忘記了)獲取每個用戶的密鑰。那麼很容易,使用forEach元素,每個profil的每個鏈接在其他頁面上使用正確的信息。

第二個問題,以檢查用戶名已更改爲例如更改爲例。那麼,我開始對我的數據庫用戶做一次參考價值。然後,如果我的pseudo.value === el.val()。僞這意味着它existe到錯誤消息。如果沒有,用戶可以更改他的用戶名,如果需要的話.update for firebase。

  database.ref('users').once('value', (snapshot)=>{ 
       let find = false; 
       snapshot.forEach(el =>{ 
        if(pseudo.value === el.val().pseudo){ 
          //console.log('YEAH'); 
          find = true 
        } 
       }) 
       if (find === false) { 
        savePseudo.style.display= 'none'; 
        editPseudo.style.display= 'block'; 
        pseudo.disabled = true; 
        database.ref('users/'+uid).update({ 
         pseudo: pseudo.value 
        }) 
       } 

謝謝大家。

0

解決您的第一個問題:不要爲每個用戶創建一個HTML文件,太可怕了!

您應該取數據,然後使用DOM操作將數據插入到頁面中。我不知道你正在使用哪個數據庫,所以我不能給你一個代碼示例的提取,但只有一個用於DOM操作。

比方說,你有以下的html:

<p id='description'></p> 

您可以通過ID獲取元素並改變它的屬性,這是被稱爲DOM操作

document.getElementById('description').textValue = 'Very important' 

這種分配非常重要段落(當由瀏覽器執行的文本將出現)。

既然你說過你只使用普通的ES6,我不會進入像NodeJS這樣的後端技術。

由於缺乏信息,我無法幫助您解決第二個問題,請提交一些代碼並告訴我們更多關於您正在使用的技術。

+0

我編輯我的帖子代碼是我用來檢查prenom是否已經存在。控制檯日誌可以工作,但它仍然可以編輯FireBase中的數據。我確實把2,如果因爲如果我把一個else它崩潰(在原子nodeJs使用gulp) 和第一部分實際上一定要清楚(對不起,我的英語)。我登錄我的應用程序。現在我想看看其他用戶配置文件。我的問題是如何?如何鏈接特定用戶。我點擊一個名稱,然後它可能是另一個page.js但是.... – rokalex