如何从Firebase应用中检索其他用户?

时间:2017-04-23 18:21:09

标签: javascript firebase firebase-realtime-database firebase-authentication

我正在学习JavaScript,我正在尝试在特定域中构建社交应用。没有像往常一样大的社交网络,因为它适用于一个小社区。

  1. 所以我使用的是Firebase,JavaScript ES6以及只有一个* {box-sizing: border-box;}的HTML文件。我已经拥有和auth系统,当前用户的个人资料页面。但我的问题是我不知道,了解从其他人的个人资料中获取网页的方式。

    因此,只要我成功通过Firebase数据库获取其他用户的信息。但我陷入了脑海。我应该为每个用户创建一个HTML文件吗?我不这么认为?

    该项目用于认证。

  2. 我的另一个问题是,无法通过数据进行验证。好吧,我成功检查数据是否存在,但它不会阻止该过程,因此无论如何它都会更新并获得2个同名用户(见下面的代码)。

  3. Atom {{3}}

    <app>

2 个答案:

答案 0 :(得分:0)

解决您的第一个问题:不要为每个用户创建一个html文件,这太糟糕了!

您应该更好地获取数据,然后使用DOM操作将数据插入页面。我不知道你正在使用哪个数据库,所以我不能给你一个代码示例来获取,但只有一个用于DOM操作。

让我们说你有以下html:

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

您可以按ID获取元素并更改其属性,这称为 DOM操作

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

这会为段落指定非常重要的(浏览器执行时会显示文本)。

既然你说你只使用普通的ES6,我就不会使用像NodeJS这样的后端技术。

由于我缺少信息,我无法帮助您使用第二个,请提交一些代码并告诉我们您正在使用的技术的更多信息。

答案 1 :(得分:0)

好的家伙很抱歉没有回复所有的问题/答案,但我得到了两个解决方案。

在第一个。因为我可以从用户那里获得信息,只需添加一些数据类来传递我可以从firebase获得的数据。但他们的解决方案更容易。从我可以在用户内部获取任何信息的那一刻起,我就可以使用snapshot.key获取每个用户的密钥(我忘了)。因此,使用forEach元素很容易,每个profil的每个链接都使用另一页上的正确信息。

第二个问题,检查一个用户名是否在更改时已经存在。好吧,我开始为我的数据库用户创建一次参考值。然后,如果我的伪值=== el.val()。伪意味着它存在于错误消息中。如果没有,用户可以通过.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
                   })
              }

谢谢大家。