javascript - Firebase功能完成后如何修复在HTML5中检索数据?
问题描述
我似乎找不到错误。在下面的代码中,当我更改资产字段时,我将值发送到 firebase,然后函数以状态完成:'ok'。
并且 value 事件方法不会读取数据库路径处的数据更改
firebase.database().ref("code/" + uuid + "/result")
请问你能帮帮我吗?
这是我的代码。
<div class='asset'></div>
<main class="app__content prop-to-show hidden" style="height: inherit;"></main>
<main class="app__content data-to-show hidden" style="height: inherit;"></main>
<script src="https://www.gstatic.com/firebasejs/5.9.0/firebase.js"></script>
<script>
var config = { ... };
firebase.initializeApp(config);
</script>
<script type="module">
import PPE from "../js/ppe.min.js";
PPE.WORKER_PATH = '../js/ppe-worker.min.js';
// step 1.: Working fine
document.querySelector('.asset').addEventListener("change", coPPE);
function coPPE() {
const asset = document.querySelector('.asset').value;
const re = new PPE (asset, result => setResult(result));
};
// step 2.: Working fine
async function setResult(content) {
await setID(content);
};
// step 3.: Working fine
function setID(reid) {
var uid = firebase.auth().currentUser.uid;
var d = new Date();
var timestamp = d.getTime();
firebase.database().ref("ppe/" + uid).set({
code: reid,
timestmp: timestamp
});
};
</script>
<!--
step 4.: Working fine - cloud function set 'firebase.database().ref("code/" + id + "/result");' wnen ref('ppe/{Id}') is updated;
-->
<script type="text/javascript">
// step 5.: Nothing happens after step 4
var uuid = firebase.auth().currentUser.uid;
var statusRef = firebase.database().ref("code/" + uuid + "/result");
statusRef.on('value', function (snapshot) {
var getPropertyValue = snapshot.val();
var list = document.querySelector('.data-to-show');
var content = '';
while (list.firstChild) {
list.removeChild(list.firstChild);
}
if (getPropertyValue.rs == 0) {
content = "<div class='verified y5p' id='ok'> ... </div>";
} else if (getPropertyValue.rs == 1) {
content = "<div class='doublecheck y6p' id='twice'> ... </div>";
} else if (getPropertyValue.rs == 2) {
content = "<div class='notverified y7p' id='reject'> ... </div>";
}
document.querySelector('.data-to-show').innerHTML = content;
document.querySelector('.prop-to-show').classList.add('hidden');
document.querySelector('.data-to-show').classList.remove("hidden");
}, function (error) {
console.log("Error: " + error.code);
});
</script>
解决方案
推荐阅读
- rust - 如何使用包含宏从单个文件中加载多个元素?
- c# - 我可以在不冻结的情况下在 Visual Studio (2019) 中调试单个线程吗?
- angular - Angular - 如何显示包含数组的数组中的数据?
- java - Java 中的多态与服务
- http - 如何让谷歌索引我的站点地图?
- azure - azure bot 几天后无法发送消息
- c++ - 有没有办法在不使用循环的情况下非特定地引用地图中的每个值?C++
- javascript - ArcGIS JavaScript API 4.11 - 打印导致 asp.net 中的回发问题
- multi-tenant - NestJS 请求多个数据库的范围多租户
- rest - 如何将多个 HTTP 动词映射到 HTTP4K 中的同一路径