我正在学习JavaScript,我正在尝试在特定域中构建社交应用。没有像往常一样大的社交网络,因为它适用于一个小社区。 p>
所以我使用的是Firebase,JavaScript ES6以及只有一个* {box-sizing: border-box;}
的HTML文件。我已经拥有和auth系统,当前用户的个人资料页面。但我的问题是我不知道,了解从其他人的个人资料中获取网页的方式。
因此,只要我成功通过Firebase数据库获取其他用户的信息。但我陷入了脑海。我应该为每个用户创建一个HTML文件吗?我不这么认为?
该项目用于认证。
我的另一个问题是,无法通过数据进行验证。好吧,我成功检查数据是否存在,但它不会阻止该过程,因此无论如何它都会更新并获得2个同名用户(见下面的代码)。
Atom {{3}}
<app>
答案 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
})
}
谢谢大家。