如何在firebase中查询给定键的多个值

Jor*_*ley 5 javascript firebase firebase-realtime-database

我试图在方法中使用'OR' ||语句equalTo(),但这似乎不起作用.我是否必须为每个值单独调用,或者是否有办法在firebase中进行条件查询?

export const startSetContent = () => {
  return (dispatch, getState) => {
    const ref = database.ref("content");
    return ref
      .orderByChild("category")
      .equalTo('one-act-play' || 'ten-min-play' || 'full-length-play')
      .once('value')
      .then(snapshot => {
        const content = [];
        snapshot.forEach(childSnapshot => {
          content.push({
            id: childSnapshot.key,
            ...childSnapshot.val()
          });
        });
        dispatch(setContent(content));
      });
  };
}; 
Run Code Online (Sandbox Code Playgroud)

Dou*_*son 3

您输入的内容是编程语言 JavaScript 解释的逻辑“或”。表达式的结果:

'one-act-play' || 'ten-min-play' || 'full-length-play'
Run Code Online (Sandbox Code Playgroud)

将会很简单:

'one-act-play'
Run Code Online (Sandbox Code Playgroud)

因此,Firebase 实时数据库不会看到您试图告诉它的内容。

Firebase 实时数据库没有包含 OR 的查询概念。您必须分别查询每种类型的事物,并根据需要将它们合并到代码中。