小编Aus*_*enn的帖子

查询Firestore集合中的所有文档而不进行循环

我一直致力于将一个小型Firebase项目转换到新的类似Firestore数据库,因为它具有更多可查询性,但我遇到了一个简单的查询问题.

我试图将所有文件都收集在一个集合中,如果每个文档都是一个俱乐部,那么该集合就是所有的俱乐部.

在Firebase中,我能够执行以下操作:

export function fetchClubs() {
    const Club = firestore.ref('clubs');
    return dispatch => {
        Club.on('value', snapshot => {
            dispatch({
                type: FETCH_CLUBS,
                payload: snapshot.val()
            })
        })
    }
}
Run Code Online (Sandbox Code Playgroud)

snapshot 将拥有我需要的所有信息.

我试图用Firestore复制它,但是只能遇到一个解决方案,它涉及创建一个新数组并循环结果然后将每个结果添加到该数据中.

这是我的Firestore尝试使用稍微不同的Firestore语法

export function fetchClubsStore() {
    const Clubs = firestore.collection('clubs');
     return dispatch => {
        Clubs.get().then(querySnapshot => {
            console.log("clubs snapshot: ", querySnapshot)
            dispatch({
                type: FETCH_CLUBS,
                payload: querySnapshot.val()
            })
        })
    }
}
Run Code Online (Sandbox Code Playgroud)

如果您有任何想法,将非常感谢所有帮助!谢谢!

(这是我的第一个stackoverflow帖子,转到简单!:))

编辑:

Firestore文档中有关如何获取集合中所有文档的示例.

db.collection("cities").where("capital", "==", true)
.get()
.then(function(querySnapshot) {
    querySnapshot.forEach(function(doc) {
        console.log(doc.id, " => ", doc.data());
    });
})
.catch(function(error) …
Run Code Online (Sandbox Code Playgroud)

javascript firebase reactjs google-cloud-firestore

13
推荐指数
1
解决办法
5690
查看次数

结合使用createStackNavigator和createBottomTabNavigator吗?

场景:

  • 我有一个使用三个选项卡进行导航的应用程序(学校,管理,家庭);
  • 我现在正在尝试添加其他屏幕,这些屏幕将没有相应的选项卡。这些屏幕将导航至使用类似this.props.navigation.navigate('ChatScreen')的内容

问题 -使用我过去的解决方案,每当我添加一个屏幕时,都会为该屏幕添加一个标签。

去做 :

  • 我想将标签页放在导航堆栈中,以及其他正常(非标签页)屏幕中。

    • 我希望标签和标头都保持不变
  • 我无法将两者结合在一起,并尝试了下面代码的许多变体。

尝试代码:

const School = createStackNavigator({
  School: { 
  screen: SchoolScreen, 
  navigationOptions: {
  headerTitle: <CustomHeaderTitle screen='school'/>
    }
  }
 });

const Admin = createStackNavigator(
  { Admin: {
  screen: AdminScreen,
  navigationOptions: {
    headerTitle: <CustomHeaderTitle screen='admin' />
      }
    }
  });

 const Family = createStackNavigator(
  {
   Family: {
      screen: FamilyScreen,
      navigationOptions: {
      headerLeft: null,
      headerTitle: <CustomHeaderTitle screen='family' />
      }
     }
    }
);

const ChatStack = createStackNavigator({
  CreateChat: CreateChatScreen
});

const TabStack = createBottomTabNavigator(
  {
    School: School, …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs react-native react-native-navigation

5
推荐指数
1
解决办法
2679
查看次数