簡體   English   中英

檢查 firebase 實時數據庫中是否存在值?

[英]Check for existence of value in firebase realtime database?

我正在使用 Firebase 實時數據庫的 V9(模塊化)版本。 我有一個 URL 列表,其中包含使用push()自動生成的密鑰。 這就是數據結構。

在此處輸入圖像描述

我想要的是檢查列表中是否存在這些 url 之一。 這是我嘗試過的。

    const testURL = "https://i.redd.it/bm6psl9sgsj81.png"; //First one in the list
    const db = getDatabase();
    const dbRef = ref(db, "burnedURLs/");
    const q = query(dbRef, equalTo(testURL));
    const snapshot = await get(q);
    const results = snapshot.toJSON();
    console.log(results); //Returns NULL

如何檢查一個值是否存在,或者在您不知道密鑰時只檢索一個值? V9 的文檔不是很好,我找到的大多數示例都是針對 V8 的。 謝謝你的幫助。

編輯:使用exists()在它確實存在時返回 false(它是樹中的第一個孩子)。 我認為問題在於我沒有正確形成查詢,而這正是我需要幫助的地方。

get(<query>)返回一個仍然有exists()DataSnapshot ,如果此DataSnapshot包含任何數據,則返回true 。:

const q = query(dbRef, orderByValue(), equalTo(testURL));

const snapshot = await get(q);

if (snapshot.exists()) {
  const results = snapshot.val();
  console.log('Results', results)
} else {
  console.log('Data does not exist')
}

從文檔中,

要過濾數據,您可以在構造查詢時將任何 limit 或 range 方法與 order-by 方法結合使用。

所以在查詢中添加orderByValue()應該可以解決問題。

暫無
暫無

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

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