gpt4 book ai didi

javascript - 如何在函数中将数据发送到firebase数据库

转载 作者:行者123 更新时间:2023-11-29 23:17:28 27 4
gpt4 key购买 nike

我正在尝试将数据发送到 Firebase。函数执行后数据保存到数据库,如何在函数执行过程中覆盖?

import firebase from 'firebase';

var config = {
apiKey: "xxx",
authDomain: "xxx.firebaseapp.com",
databaseURL: "https://xxx.firebaseio.com",
projectId: "xxx",
storageBucket: "xxx.appspot.com",
messagingSenderId: "xxx"
};
firebase.initializeApp(config);

var db = firebase.database();
var sleep = require('sleep');
function run(TIME) {
db.ref('/test/').child('status').set('1');
sleep.sleep(TIME);
db.ref('/test/').child('status').set('2');
sleep.sleep(TIME);
db.ref('/test/').child('status').set('3');
sleep.sleep(TIME);
db.ref('/test/').child('status').set('4');

};
//========================================<<<< Now I see status in Firebase
run(5);

最佳答案

set() 方法是异步的,并返回一个在写入服务器完成时解析的 promise ,如文档 here 中所述。 .

根据您上面的评论,我了解到您希望状态为“正在工作 - 开始功能之前,完成之后”。

所以你应该按照以下几行做一些事情:

var status = '';
var adaNameRef = firebase.database().ref('users/ada/name');
status = 'WORKING';
adaNameRef.set({ first: 'Ada', last: 'Lovelace' })
.then(function() {
status = 'DONE';
})
.catch(function(error) {
console.log('Synchronization failed');
});

如果您想“一次将多个值写入数据库”,您应该使用update() 方法。参见 herehere .

set() 方法类似,update() 方法是异步的,并返回一个在写入服务器完成时解析的 promise ,因此您可以使用更新状态值的逻辑相同


根据您的评论更新

1。向 FB 发送状态“WORKING” 2. 将 Relay 设置为 ON 3. 等待 x 秒 4. 向 FB 发送状态“DONE” 5. 将 Relay 设置为 OFF

如果我理解正确,这应该有效(但未测试):

var adaNameRef = firebase.database().ref('users/ada/name');
adaNameRef.set({ status: 'WORKING'})
.then(function() {
// Set Relay to ON ... don't know exactly how you "set the relay"
sleep.sleep(x);
return adaNameRef.set({ status: 'DONE'})
})
.then(function() {
// Set Relay to OFF
})
.catch(function(error) {
console.log(error);
});

关于javascript - 如何在函数中将数据发送到firebase数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52223857/

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