firebase toDoApp带有;“价值”;还是儿童事件?

firebase toDoApp带有;“价值”;还是儿童事件?,firebase,firebase-realtime-database,Firebase,Firebase Realtime Database,我想创建一个简单的ToDoaApplication,但我不确定是否应该使用“值”或子事件。有什么建议吗 这是我到目前为止写的: const list1 = document.querySelector('.t__tasks'); const input = document.querySelector('.t__text'); const addBtn = document.querySelector('.t__submit'); const toDoRefObject = firebase.

我想创建一个简单的ToDoaApplication,但我不确定是否应该使用“值”或子事件。有什么建议吗

这是我到目前为止写的:

const list1 = document.querySelector('.t__tasks');
const input = document.querySelector('.t__text');
const addBtn = document.querySelector('.t__submit');

const toDoRefObject = firebase.database().ref().child('t');

window.addEventListener('DOMContentLoaded', ( e ) => {      
    toDoRefObject.on( 'value', data => {
        data.forEach( ( data ) => {
            const li = document.createElement('li');
            const button = document.createElement('button');
            button.classList.add('t__add');
            button.textContent = "Delete";
            button.type = "button";
            li.textContent = data.val();
            li.appendChild(button);
            list1.appendChild(li);
        })          
    });
});

const removeTask = ( e ) => {
    if( !e.target.matches('.t__add') ) return;
}

const addTask = ( ) => {
    const taskText = input.value;
    list1.innerHTML = '';
    toDoRefObject.push(taskText);
};

addBtn.addEventListener('click', addTask);
list1.addEventListener('click', removeTask);
我不知道如何使用DOM删除单个任务

值:

值事件用于读取给定数据库路径中内容的静态快照,因为它们在读取事件时就存在。它与初始数据一起触发一次,每次数据更改时再次触发。事件回调传递一个快照,其中包含该位置的所有数据,包括子数据。在上面的代码示例中,value返回应用程序中的所有博客帖子。每次添加新博客文章时,回调函数都将返回所有文章

儿童补充说:

“添加子项”事件通常用于从数据库检索项目列表时。与返回位置的全部内容的值不同,添加的child_为每个现有子级触发一次,然后在每次将新子级添加到指定路径时再次触发。事件回调传递一个包含新子级数据的快照。出于排序的目的,还向它传递了第二个参数,该参数包含前一个子级的键

这两个事件都能完成所需的工作,这并不重要,通常在列表中使用
child
事件,因为它是一个
todo
应用程序,所以我猜您将有一个todo项列表,那么使用
child
事件可能更好,以便能够更轻松地控制子项的删除和添加

有关更多信息,请检查此值:

值:

值事件用于读取给定数据库路径中内容的静态快照,因为它们在读取事件时就存在。它与初始数据一起触发一次,每次数据更改时再次触发。事件回调传递一个快照,其中包含该位置的所有数据,包括子数据。在上面的代码示例中,value返回应用程序中的所有博客帖子。每次添加新博客文章时,回调函数都将返回所有文章

儿童补充说:

“添加子项”事件通常用于从数据库检索项目列表时。与返回位置的全部内容的值不同,添加的child_为每个现有子级触发一次,然后在每次将新子级添加到指定路径时再次触发。事件回调传递一个包含新子级数据的快照。出于排序的目的,还向它传递了第二个参数,该参数包含前一个子级的键

这两个事件都能完成所需的工作,这并不重要,通常在列表中使用
child
事件,因为它是一个
todo
应用程序,所以我猜您将有一个todo项列表,那么使用
child
事件可能更好,以便能够更轻松地控制子项的删除和添加

有关更多信息,请查看以下内容: