我有一个对 Firebase 的查询,其中包含一个大小 > 10 的 ID 数组。 Firebase 对一个会话中要查询的记录数有限制。有没有办法一次查询超过 10 个?
[未处理的承诺拒绝:FirebaseError:无效查询。'in' 过滤器支持值数组中最多 10 个元素。]
https://cloud.google.com/firestore/docs/query-data/queries
let query = config.db
.collection(USER_COLLECTION_NAME)
.where("id", "in", matchesIdArray);
const users = await query.get();
Run Code Online (Sandbox Code Playgroud)
(matchesIdArray.length 需要是无限的)
是否可以将自定义字段添加到 Firebase 中的用户配置文件表?
现在看起来我只能将数据添加到:
我希望能够将自定义对象添加到 JSON 字符串以包含所有用户数据。
javascript firebase firebase-authentication react-native-firebase
我尝试了很多尝试来启动 react-native-image-picker 并使用我的 RN 应用程序。我正在使用 Expo 和 VS Code,并且没有使用 Xcode 或 Android Studio 运行该应用程序。在应用程序中获取相机胶卷的方法似乎有很多,我不确定哪条路是最好的。似乎没有人为我工作,所以我想选择最佳路径并专注于使那条路径有效。
我正在关注文档:https : //github.com/react-native-community/react-native-image-picker
我尝试过的事情:
我的代码:
import React, {useState, useEffect} from 'react';
import {StyleSheet, View, TextInput, TouchableOpacity, Text, CameraRoll } from 'react-native'
import ImagePicker from 'react-native-image-picker';
// import * as ImagePicker from 'expo-image-picker';
import Constants from 'expo-constants';
const PicturesScreen = ({navigation}) => {
const [pictures, setPictures] = useState([]);
getPermissionAsync = async () => {
if (Constants.platform.ios) {
const { status …Run Code Online (Sandbox Code Playgroud) react-native react-native-camera expo react-native-image-picker
是否可以在没有“array-contains”的情况下比较 Firestore 查询中的两个数组?
像这样的东西:
query = query.where(
"info.currentLocation",
"==",
currentUserBasicInfo.currentLocation
);
Run Code Online (Sandbox Code Playgroud)
info.currentLocation和currentUserBasicInfo.currentLocation都是具有映射值的数组。我无法更改数据结构,并且查询中已经有“数组包含”。因为两个数组必须相同才能运行,所以我觉得必须有一种方法可以比较两个数组,而不必使用“array-contains”或“array-contains-any”或“IN”。
有什么建议么?这可能吗?
这是我第一次上传到 Google Play 商店,我不确定是我做错了什么还是读错了,但我上传了我的 APK 并邀请了我的测试用户,一切似乎都给了我绿灯(见下图)但是当我复制 URL 并将其发送给我的测试用户时,它只是加载和加载。
然后我尝试创建一个封闭测试,它正在审查中,现在链接说“我们很抱歉在此服务器上找不到请求的 URL”。
如您所见,距离我提交给内部测试人员已经过去了大约 48 小时。封闭测试是否会导致内部测试 URL 出现问题?为什么内部测试会继续加载?我的测试用户是否应该收到带有适当 URL 的电子邮件?
android google-play google-play-services google-play-console
我有两种方法:
//authContext.js
const getAllUserData = (dispatch) => {
return async (userId)=>{
try{
const response = await config.grabUserData(userId);
console.log('should be an array of user data: ' + response + ', ' + JSON.stringify(response)); //should be an array of user data: undefined, undefined
for(ud in response){
await AsyncStorage.setItem('' + ud, '' + response[ud]);
dispatch({type: 'user_data', payload: response});
}
} catch(e){
dispatch({type: 'add_error', payload: '' + e});
}
return dispatch;
}
};
Run Code Online (Sandbox Code Playgroud)
和
//config.js
grabUserData = async (userId) => {
var db = …Run Code Online (Sandbox Code Playgroud) javascript async-await firebase react-native google-cloud-firestore
就像问题所述,Firebase 只允许每个查询一个 array-contains-any ( https://firebase.google.com/docs/firestore/query-data/queries )。
当有人需要复杂的查询时会发生什么?我的查询需要大约 10 个.where(),其中有 4 个子句。array-contains-any是否有解决方法,或者我是否必须从第一次获取结果array-contains-any,然后一次又一次地标注?看起来很费力而且没有必要。
var usersMatchesCollection = config.db.collection("Users");
var currentUserMatchesAllData = usersMatchesCollection.where('preferences.lookingFor', 'array-contains-any', docDataPreferences.lookingFor)
.where('info.identifyAs', '==', docDataPreferences.prefIdentifyAs)
.where('info.languages', 'array-contains-any', docDataPreferences.prefLanguages)
.where('age', 'array-contains-any', docDataPreferences.ageRange)
.where('profession', 'array-contains-any', docDataPreferences.prefProfession)
.where('education', '==', docDataPreferences.prefEducation)
.where('kids', '==', docDataPreferences.prefKids)
.where('married', '==', docDataPreferences.prefMarried)
.where('drinking', '==', docDataPreferences.prefDrinking)
.where('smokingCig', '==', docDataPreferences.prefSmokingCig)
await currentUserMatchesAllData.get().then( function (matchesQuerySnapshot) {
matchesQuerySnapshot.forEach(function(doc) {
console.log('doc data: ' + JSON.stringify(doc.data().id));
})
})
Run Code Online (Sandbox Code Playgroud) 我想让我的选项卡导航器在视觉上保持以下顺序:“主页”选项卡、“连接”选项卡、“聊天”选项卡
但我希望“连接”选项卡(第二个选项卡)成为应用程序加载时打开的第一个选项卡。我没有找到一种方法可以将其添加到堆栈导航器而不重新排列选项卡的顺序。除了第一个具有以下结构的选项卡之外,是否还有另一种方法可以定位选项卡:
const switchNavigator = createSwitchNavigator({
LoadingScreen,
FirstLoginScreen,
loginFlow: createStackNavigator({
Main: MainScreen,
EmailLogin: EmailLoginScreen,
PhoneLogin: RegisterScreens,
}),
mainFlow: createBottomTabNavigator(
{
Home: createStackNavigator({
HomeScreen,
EditAccountScreen,
EditPreferencesScreen,
EditProfileScreen,
ProfileCardScreen,
}),
Connect: ConnectionsScreen,
Chat: createStackNavigator({
AllChatScreen,
SingleChat,
})
},
{
defaultNavigationOptions: ({navigation}) => ({
tabBarIcon: ({tintColor}) => {
const {routeName} = navigation.state;
if (routeName === "Home") {
return <MaterialIcons name={"home"} size={20} color={tintColor} />;
} else if (routeName === "Connect") {
return <MaterialIcons name={"link"} size={20} color={tintColor} />;
} else if (routeName === "Chat") { …Run Code Online (Sandbox Code Playgroud) react-native react-native-navigation stack-navigator react-navigation-bottom-tab
我想从 Firestore 中的数组中删除一个值。我正在使用 firebase 函数并在删除用户后更新此字段。我尝试过更新数组,尝试过 arrayRemove 以及其他各种行。因为每次我想运行测试时都必须进行部署,所以它很耗时,而且每次都很难构建和删除数据。
所以我希望有人可以帮助我在这里找到这个解决方案:
我想遍历一个 ID 列表(数据库中的用户)并提取他们的匹配项,并从他们的匹配项列表中删除一个特定的 ID。
当我运行它时,它不知道是什么firebase.firestore。所以我不确定如何使用这种类型的FieldValue.delete(). 这部分的目标是什么?“admin.FieldValue.delete()”?
admin.firestore()
.collection("Users")
.doc(matches[i])
.update({
[userId]: firebase.firestore.FieldValue.delete(),
});
Run Code Online (Sandbox Code Playgroud)
我也试过这个:
admin
.firestore()
.collection("Users")
.doc(matches[i])
.update({
matches: admin.firebase.firestore.FieldValue.arrayRemove(userId),
});
Run Code Online (Sandbox Code Playgroud)
但它又不知道是什么firebase.firestore。从数组中删除一个值的正确方法是什么?
另外,我担心在 for 循环中进行标注,但我没有找到解决方法。有没有人有什么建议?这些不需要是异步的,因为所有事务都不相互依赖。
我在 firebase 函数中收到的错误消息:
ReferenceError:firebase 未定义
我在将 react-navigation 从 v3 升级到 v5 时遇到了一些麻烦。我一直遇到这个错误,起初我认为这是一个错误,但我没有在网上找到任何其他关于它的投诉。为了 100% 确定旧版本没有引起任何问题,我完全卸载了所有 react-navigation 并从头开始使用 v5。我仍然收到索引文件错误。它似乎不理解打字稿......这是一个已知的错误吗?关于安装 Typescript 的文档中没有我需要采取的另一个步骤吗?
更新:./types 文件没有正确编译...它似乎无法识别 NavigationState 或 ActionHelpers...这是一个错误吗?有没有人见过这个?
更新 2 我在 RN V0.59 上运行,所以我认为可能存在依赖性问题。我正在升级到 V0.62.2,看看问题是否仍然存在
https://reactnavigation.org/docs/getting-started
语法错误:/Users/myusername/myprojectname/node_modules/@react-navigation/stack/src/index.tsx:意外令牌 (51:12)
49 | * 类型 50 | */
51 | 导出类型 { | ^ 52 | 堆栈导航选项,53 | StackNavigationProp, 54 | StackHeaderProps,
javascript typescript react-native react-navigation react-navigation-v5
react-native ×7
firebase ×6
javascript ×4
android ×1
async-await ×1
expo ×1
google-play ×1
react-navigation-bottom-tab ×1
typescript ×1