gpt4 book ai didi

javascript - 如何使用唯一键在 Firebase 数据库中添加数据,然后使用唯一键获取数据?

转载 作者:行者123 更新时间:2023-11-28 17:13:38 24 4
gpt4 key购买 nike

-LUeq8x-5QaVSXKJdXtz 是关键 -LUeq8x-5QaVSXKJdXtz is the key

signup = async () => {
const { email, pass, job, description, name, age } = this.state;
// fetching state variables to use in this function


try {
await firebase.auth().createUserWithEmailAndPassword(email, pass);

var playersRef = firebase.database().ref("doctorsList/");

//push function adds the data with a unique key
playersRef.push({
doctor: {
name: name,
age: age,
job: job,
description: description
},
});
}
catch (error) { console.log(error) }
}

如果 Firebase 数据库具有唯一键,我该如何获取数据?

var ref = firebase.database().ref( 'doctorsList/doctor/' );

ref.on('value', (snapshot) => {
alert(snapshot.val().name);
});

当我使用 alert(snapshot.val().name); 时,它会显示数据库中的名称,但是当我尝试通过 this.setState({ name: snapshot.val().name }); 它不会保存。或者如何立即保存数据库中的数据?

最佳答案

托尼的回答展示了一旦​​你知道医生的 key 后如何联系他们。还有多种情况您可能不知道 key 。

例如,如果您对要阅读的医生一无所知,您所能做的就是阅读所有医生的信息:

var ref = firebase.database().ref( 'doctorsList' );

ref.on('value', (snapshot) => {
snapshot.forEach((doctorSnapshot) => {
alert(doctorSnapshot.key+": "+doctorSnapshot.val().doctor.name);
});
});

例如,如果您知道医生的姓名,则可以使用查询来检索与该姓名匹配的医生:

ref.orderByChild("doctor/name").equalTo("shubham").on('value', (snapshot) => {
snapshot.forEach((doctorSnapshot) => {
alert(doctorSnapshot.key);
});
});

这里您仍然需要 snapshot.forEach,因为可能有多个姓名匹配的医生。

如果您想更改每个医生的某些内容,您可以在回调中更新它:

ref.orderByChild("doctor/name").equalTo("shubham").on('value', (snapshot) => {
snapshot.forEach((doctorSnapshot) => {
doctorSnapshot.ref.child("job").set("doctor");
});
});

关于javascript - 如何使用唯一键在 Firebase 数据库中添加数据,然后使用唯一键获取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53940798/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com