簡體   English   中英

如何在 React Native 中從我的實時 Firebase 數據庫中刪除單個條目?

[英]How to delete a single entry from my Realtime Firebase database in React Native?

我不太確定如何刪除實時數據庫中的單個條目,每次運行以下命令時,它都會刪除該數據庫中的所有內容:

const deleteTask = () => {
        console.log('will delete: ', id);
        remove(ref(db, '/todos', id))
    }

我確實有 id(可以通過 console.log 看到),它與我的 firebase 在 web 控制台上顯示的內容相匹配。 但是為什么“刪除”會刪除整個數據庫呢?

讓我感到奇怪的是,這段代碼成功地更新了單個數據庫條目的“完成”狀態:

const onCheck = (isChecked) => {
        setDone(isChecked);
        update(ref(db, '/todos'), {
            [id]: {
                title,
                done: !doneState,
            },
        });
        console.log('set done/undone')
    };

我查看了官方實時數據庫,但這並不能幫助我找出問題所在。 stackoverflow 上的其他解決方案也是如此,但其中大多數都有獲取 id 的問題,這是我已經擁有的。

非常感謝任何幫助/提示::)

ref function僅采用單個路徑參數:

簽名:

export declare function ref(db: Database, path?: string): DatabaseReference;

因此,您指定為第二個參數的 ID 未被使用,因此您確實刪除了所有todos

解決方案是調用child

remove(child(ref(db, '/todos'), id))

或者將整個路徑作為一個字符串傳遞:

remove(ref(db, '/todos/'+id))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM