Ionic 3,firebase将值保存在同一键下的两个数据库中

时间:2018-09-20 08:54:42

标签: javascript firebase firebase-realtime-database ionic3

我正在处理离子项目,并且正在使用Firebase中的数据库来存储数据。 在这里,我想在输入新值时使用相同的键在两个数据库中创建值。

首先,我尝试获取一个数据库的密钥,并使用该密钥将值存储在其他数据库中。

this.database.list("/User/").push({
       Username: this.username.value,
       Email: this.email.value,
       Shop: this.shopname.value,
       Contact: this.contact.value
       }).then((data)=>
       console.log(data.key));

this.database.list("/Shops/").push(data.key).set(
         this.shopname.value
      );

然后我尝试获取一个密钥并将其设置到两个数据库中。

let key = this.database.createPushId();

this.database.list("/Shops/").push(key).set(
         this.shopname.value
      );

对我没有任何帮助。 我是离子学的初学者,已经提出的类似问题没有给我任何解决方案 如有需要,我将使用

angularfire2: "^5.0.0-rc.11",
firebase : "^4.13.1",
ionic 3

提前谢谢。

1 个答案:

答案 0 :(得分:0)

每次致电python generateHadoopConfig.py > myconfig.conf时,您都会引用一个具有唯一ID的新孩子。由于您要创建两个具有相同ID的新子节点,因此只应调用一次push()。将对push()的调用与编写的代码分开是最简单的:

push()

此调用实际上在数据库中不执行任何操作;它甚至不调用服务器。它仅生成在统计上保证是唯一的密钥。然后,您可以在两个写入操作中使用此键:

var key = firebase.database().ref("/User/").push().key;

以上内容直接使用JavaScript SDK,而不是AngularFire2。由于AngularFire2是基于JavaScript SDK构建的,因此它们可以完美地协同工作,因此您可能会在列表中看到的所有观察者都可以选择上述内容。