数据库参考:
我正在尝试将数据保存到firebase实时数据库中,我需要我的密钥作为用户ID,而不是我尝试过的孩子生成的随机生成的唯一密钥,但仍然可以获得一些随机密钥有什么帮助吗?这是我目前拥有的方法
async componentWillMount() {
const {data} = await Contacts.getContactsAsync({
fields: [Contacts.Fields.PhoneNumbers],
});
this.setState({dataSource: data.map(contact => ({...contact, key: contact.number}))});
const contacts = data.filter(d => d.phoneNumbers);
contactsToUpload.forEach(contact => {
const number = contact.phoneNumbers[0].number.replace(/\D/g, '');
const ref = firebase.database().ref('/Contacts/' + number);
try {
ref.push(contact.name);
} catch (error) {
console.log(error);
}
});
}
//Currently have
"Contacts" : {
"5554787672" : {
"-LWIlxwIETK5UR3O5GkR" : "Daniel Higgins Jr.",
"-LWImsOurEVDOE-KrkVw" : "Daniel From School"
}
//Needed
"Contacts" : {
"5554787672" : {
"UserId1" : "Daniel Higgins Jr.",
"UserId2" : "Daniel From School"
}
答案 0 :(得分:0)
每次调用push()
时,Firebase都会生成对数据库中新的唯一位置的引用。因此,ref.push()
在ref
下创建了一个新的唯一位置。
如果您只想在联系人的ID下设置姓名,请将ref.push(contact.name);
更改为:
ref.set(contact.name);
答案 1 :(得分:0)
db.ref('UsersList/').child('name you want to use').set({
email:this.state.email,
fname: this.state.lastname,
lname: this.state.firstname,
}).then((data)=>{
//success callback
alert('success'+data);
}).catch((error)=>{
//error callback
alert('failed'+error);
})
类似的东西对我有用,我能够根据所需的特殊用户名进行存储。