我一直致力于将一个小型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) 场景:
问题 -使用我过去的解决方案,每当我添加一个屏幕时,都会为该屏幕添加一个标签。
去做 :
我想将标签页放在导航堆栈中,以及其他正常(非标签页)屏幕中。
我无法将两者结合在一起,并尝试了下面代码的许多变体。
尝试代码:
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)