Вопросы по тегу: google-cloud-firestore

(22)

Можно ли получить идентификатор до того, как он был добавлен?

Я знаю, что в базе данных реального времени я мог получить идентификатор push-уведомления до того, как он был добавлен, вот так: DatabaseReference databaseReference= FirebaseDatabase.getInstance().getReference(); String challengeId=databaseReference.push().getKey(); и тогда я мог бы добавить его, используя этот идентификатор.Могу ли я получить его также в Cloud Firestore?
T

Tal Barda

4 года назад

Ответов: 15

Difference between set with {merge: true} and update

In Cloud Firestore there are three write operations: 1) add2) set3) updateIn the docs it says that using set(object, {merge: true}) will merge object with existing one.The same happens when you use update(object) So what is the difference if any? It seems strange that google will duplicate logic.
Z

ZuzEL

4 года назад

Ответов: 5

тип List<dynamic>не является подтипом типа List<Widget>

У меня есть фрагмент кода, который я скопировал из примера Firestore:Widget _buildBody(BuildContext context) { return new StreamBuilder( stream: _getEventStream(), builder: (context, snapshot) { if (!snapshot.hasData) return new Text('Loading...'); return new ListView( children: snapshot.data.documents.map((document) { return new ListTile( title: new Text(document['name']), subtitle: new Text("Class"), ); }).toList(), ); }, ); } а вот такая ошибкаtype 'List' is not a subtype of type 'List' Что здесь не так?
A

Arash

4 года назад

Ответов: 9

Как преобразовать дату / метку времени Firestore в дату JS ()?

Я пытаюсь преобразовать указанную ниже дату в объект Date () javascript. Когда я получаю его с сервера, это объект Timestamp, Скриншот из консоли Firebase Firestore:Когда я пробую следующее в списке объектов, возвращаемых из firestore: list.forEach(a => { var d = a.record.dateCreated; console.log(d, new Date(d), Date(d)) }) Я получаю такой результат: Очевидно, что все временные метки разные, и не все совпадают с датой 9 сентября 2018 года (а это случилось сегодня). Я также не уверен, почему новая дата (отметка времени) приводит к недопустимой дате. Я немного новичок в JS, я что-то не так делаю с датами или отметками времени?
b

blueether

3 года назад

Ответов: 22

Как обновить «массив объектов» с помощью Firestore?

Сейчас я пробую Firestore, и я застрял на очень простом: «обновление массива (также известного как поддокумент)».Моя структура БД очень проста. Например:proprietary: "John Doe", sharedWith: [ {who: "first@test.com", when:timestamp}, {who: "another@test.com", when:timestamp}, ], Я пытаюсь (безуспешно) протолкнуть новые записи в массив объектов shareWith.Пробовал:// With SET firebase.firestore() .collection('proprietary') .doc(docID) .set( { sharedWith: [{ who: "third@test.com", when: new Date() }] }, { merge: true } ) // With UPDATE firebase.firestore() .collection('proprietary') .doc(docID) .update({ sharedWith: [{ who: "third@test.com", when: new Date() }] }) Ничего не работает. Эти запросы перезаписывают мой массив.Ответ может быть простым, но я не смог его найти ...
n

nerotulip

4 года назад

Ответов: 15

Google Firestore - как получить несколько документов по нескольким идентификаторам за один прием?

Мне интересно, можно ли получить несколько документов по списку идентификаторов за один проход (сетевой вызов) в базу данных Firestore.
J

Joon

4 года назад

Ответов: 15

Flutter Firestore вызывает D8: не удается разместить запрошенные классы в одном файле dex (# методы: 71610> 65536) в Android Studio

Я пытаюсь использовать firestore с приложением Flutter в последней версии Android Studio. Я точно выполнил эти инструкции.https://www.youtube.com/watch?v=DqJ_KjFzL9I&list=PLjxrf2q8roU2HdJQDjJzOeO6J3FoFLWr2&index=9 Я даже заставил их работать на прошлой неделе с другим приложением. Теперь я получаю следующую ошибку, когда пытаюсь запустить свое новое приложение после выполнения всех шагов, вплоть до обновления pubspec.yaml (включительно). Имейте в виду, что в этом примере я получаю сообщение об ошибке в новом приложении счетчика флаттера без каких-либо других изменений кода, кроме того, что вы видите здесь.D8: Cannot fit requested classes in a single dex file (# methods: 71610 > 65536) FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'. > com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: C:\Users\DonBo\AndroidStudioProjects\don_flutter_projects\bakery\bakery\build\app\intermediates\transforms\dexBuilder\debug\2.jar, C:\Users\DonBo\AndroidStudioProjects\don_flutter_projects\bakery\bakery\build\app\intermediates\transforms\dexBuilder\debug\3.jar, C:\Users\DonBo\AndroidStudioProjects\don_flutter_projects\bakery\bakery\build\app\intermediates\transforms\dexBuilder\debug\4.jar, C:\Users\DonBo\AndroidStudioProjects\don_flutter_projects\bakery\bakery\build\app\intermediates\transforms\dexBuilder\debug\5.jar, C:\Users\DonBo\AndroidStudioProjects\don_flutter_projects\bakery\bakery\build\app\intermediates\transforms\dexBuilder\debug\6.jar, C:\Users\DonBo\AndroidStudioProjects\don_flutter_projects\bakery\bakery\build\app\intermediates\transforms\dexBuilder\debug\7.jar, C:\Users\DonBo\AndroidStudioProjects\don_flutter_projects\bakery\bakery\build\app\intermediates\transforms\dexBuilder\debug\8.jar, C:\Users\DonBo\AndroidStudioProjects\don_flutter_projects\bakery\bakery\build\app\intermediates\transforms\dexBuilder\debug\9.jar, C:\Users\DonBo\AndroidStudioProjects\don_flutter_projects\bakery\bakery\build\app\intermediates\transforms\dexBuilder\debug\10.jar, C:\Users\DonBo\AndroidStudioProjects\don_flutter_projects\bakery\bakery\build\app\intermediates\transforms\dexBuilder\debug\11.jar, C:\Users\DonBo\AndroidStudioProjects\don_flutter_projects\bakery\bakery\build\app\intermediates\transforms\dexBuilder\debug\12.jar, C:\Users\DonBo\AndroidStudioProjects\don_flutter_projects\bakery\bakery\build\app\intermediates\transforms\dexBuilder\debug\13.jar, C:\Users\DonBo\AndroidStudioProjects\don_flutter_projects\bakery\bakery\build\app\intermediates\transforms\dexBuilder\debug\14.jar, C:\Users\DonBo\AndroidStudioProjects\don_flutter_projects\bakery\bakery\build\app\intermediates\transforms\dexBuilder\debug\15.jar, C:\Users\DonBo\AndroidStudioProjects\don_flutter_projects\bakery\bakery\build\app\intermediates\transforms\dexBuilder\debug\16.jar, C:\Users\DonBo\AndroidStudioProjects\don_flutter_projects\bakery\bakery\build\app\intermediates\transforms\dexBuilder\debug\17.jar, C:\Users\DonBo\AndroidStudioProjects\don_flutter_projects\bakery\bakery\build\app\intermediates\transforms\dexBuilder\debug\18.jar, C:\Users\DonBo\AndroidStudioProjects\don_flutter_projects\bakery\bakery\build\app\intermediates\transforms\dexBuilder\debug\19.jar, C:\Users\DonBo\AndroidStudioProjects\don_flutter_projects\bakery\bakery\build\app\intermediates\transforms\dexBuilder\debug\20.jar, C:\Users\DonBo\AndroidStudioProjects\don_flutter_projects\bakery\bakery\build\app\intermediates\transforms\dexBuilder\debug\21.jar, C:\Users\DonBo\AndroidStudioProjects\don_flutter_projects\bakery\bakery\build\app\intermediates\transforms\dexBuilder\debug\22.jar, C:\Users\DonBo\AndroidStudioProjects\don_flutter_projects\bakery\bakery\build\app\intermediates\transforms\dexBuilder\debug\23.jar, C:\Users\DonBo\AndroidStudioProjects\don_flutter_projects\bakery\bakery\build\app\intermediates\transforms\dexBuilder\debug\24.jar, C:\Users\DonBo\AndroidStudioProjects\don_flutter_projects\bakery\bakery\build\app\intermediates\transforms\dexBuilder\debug\25.jar, C:\Users\DonBo\AndroidStudioProjects\don_flutter_projects\bakery\bakery\build\app\intermediates\transforms\dexBuilder\debug\26.jar, C:\Users\DonBo\AndroidStudioProjects\don_flutter_projects\bakery\bakery\build\app\intermediates\transforms\dexBuilder\debug\27.jar, C:\Users\DonBo\AndroidStudioProjects\don_flutter_projects\bakery\bakery\build\app\intermediates\transforms\dexBuilder\debug\28.jar, C:\Users\DonBo\AndroidStudioProjects\don_flutter_projects\bakery\bakery\build\app\intermediates\transforms\dexBuilder\debug\29.jar, C:\Users\DonBo\AndroidStudioProjects\don_flutter_projects\bakery\bakery\build\app\intermediates\transforms\dexBuilder\debug\30.jar, C:\Users\DonBo\AndroidStudioProjects\don_flutter_projects\bakery\bakery\build\app\intermediates\transforms\dexBuilder\debug\31.jar, C:\Users\DonBo\AndroidStudioProjects\don_flutter_projects\bakery\bakery\build\app\intermediates\transforms\dexBuilder\debug\32.jar, C:\Users\DonBo\AndroidStudioProjects\don_flutter_projects\bakery\bakery\build\app\intermediates\transforms\dexBuilder\debug\33.jar, C:\Users\DonBo\AndroidStudioProjects\don_flutter_projects\bakery\bakery\build\app\intermediates\transforms\dexBuilder\debug\34.jar, C:\Users\DonBo\AndroidStudioProjects\don_flutter_projects\bakery\bakery\build\app\intermediates\transforms\dexBuilder\debug\35.jar, C:\Users\DonBo\AndroidStudioProjects\don_flutter_projects\bakery\bakery\build\app\intermediates\transforms\dexBuilder\debug\36.jar, C:\Users\DonBo\AndroidStudioProjects\don_flutter_projects\bakery\bakery\build\app\intermediates\transforms\dexBuilder\debug\37.jar, C:\Users\DonBo\AndroidStudioProjects\don_flutter_projects\bakery\bakery\build\app\intermediates\transforms\dexBuilder\debug\38.jar, C:\Users\DonBo\AndroidStudioProjects\don_flutter_projects\bakery\bakery\build\app\intermediates\transforms\dexBuilder\debug\39.jar, C:\Users\DonBo\AndroidStudioProjects\don_flutter_projects\bakery\bakery\build\app\intermediates\transforms\dexBuilder\debug\40.jar, C:\Users\DonBo\AndroidStudioProjects\don_flutter_projects\bakery\bakery\build\app\intermediates\transforms\dexBuilder\debug\41.jar, C:\Users\DonBo\AndroidStudioProjects\don_flutter_projects\bakery\bakery\build\app\intermediates\transforms\dexBuilder\debug\42.jar, C:\Users\DonBo\AndroidStudioProjects\don_flutter_projects\bakery\bakery\build\app\intermediates\transforms\dexBuilder\debug\43.jar, C:\Users\DonBo\AndroidStudioProjects\don_flutter_projects\bakery\bakery\build\app\intermediates\transforms\dexBuilder\debug\44.jar, C:\Users\DonBo\AndroidStudioProjects\don_flutter_projects\bakery\bakery\build\app\intermediates\transforms\dexBuilder\debug\45.jar, C:\Users\DonBo\AndroidStudioProjects\don_flutter_projects\bakery\bakery\build\app\intermediates\transforms\dexBuilder\debug\46.jar, C:\Users\DonBo\AndroidStudioProjects\don_flutter_projects\bakery\bakery\build\app\intermediates\transforms\dexBuilder\debug\47.jar, C:\Users\DonBo\AndroidStudioProjects\don_flutter_projects\bakery\bakery\build\app\intermediates\transforms\dexBuilder\debug\48.jar, C:\Users\DonBo\AndroidStudioProjects\don_flutter_projects\bakery\bakery\build\app\intermediates\transforms\dexBuilder\debug\49.jar, C:\Users\DonBo\AndroidStudioProjects\don_flutter_projects\bakery\bakery\build\app\intermediates\transforms\dexBuilder\debug\50.jar, C:\Users\DonBo\AndroidStudioProjects\don_flutter_projects\bakery\bakery\build\app\intermediates\transforms\dexBuilder\debug\51.jar, C:\Users\DonBo\AndroidStudioProjects\don_flutter_projects\bakery\bakery\build\app\intermediates\transforms\dexBuilder\debug\52.jar, C:\Users\DonBo\AndroidStudioProjects\don_flutter_projects\bakery\bakery\build\app\intermediates\transforms\dexBuilder\debug\53.jar The number of method references in a .dex file cannot exceed 64K. Learn how to resolve this issue at https://developer.android.com/tools/building/multidex.html * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights. * Get more help at https://help.gradle.org BUILD FAILED in 21s Finished with error: Gradle task assembleDebug failed with exit code 1 Вот мой файл pubspecname: bakery description: A new Flutter application. # The following defines the version and build number for your application. # A version number is three numbers separated by dots, like 1.2.43 # followed by an optional build number separated by a +. # Both the version and the builder number may be overridden in flutter # build by specifying --build-name and --build-number, respectively. # In Android, build-name is used as versionName while build-number used as versionCode. # Read more about Android versioning at https://developer.android.com/studio/publish/versioning # In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion. # Read more about iOS versioning at # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html version: 1.0.0+1 environment: sdk: ">=2.1.0 Вот мой файл градиента уровня приложенияdef localProperties = new Properties() def localPropertiesFile = rootProject.file('local.properties') if (localPropertiesFile.exists()) { localPropertiesFile.withReader('UTF-8') { reader -> localProperties.load(reader) } } def flutterRoot = localProperties.getProperty('flutter.sdk') if (flutterRoot == null) { throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") } def flutterVersionCode = localProperties.getProperty('flutter.versionCode') if (flutterVersionCode == null) { flutterVersionCode = '1' } def flutterVersionName = localProperties.getProperty('flutter.versionName') if (flutterVersionName == null) { flutterVersionName = '1.0' } apply plugin: 'com.android.application' apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" android { compileSdkVersion 28 lintOptions { disable 'InvalidPackage' } defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId "com.boody.sag.bakery" minSdkVersion 16 targetSdkVersion 28 versionCode flutterVersionCode.toInteger() versionName flutterVersionName testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { // TODO: Add your own signing config for the release build. // Signing with the debug keys for now, so `flutter run --release` works. signingConfig signingConfigs.debug } } } flutter { source '../..' } dependencies { testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' } apply plugin: 'com.google.gms.google-services' Вот мой файл Gradle уровня Androidbuildscript { repositories { google() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.2.1' classpath 'com.google.gms:google-services:3.2.0' } } allprojects { repositories { google() jcenter() } } rootProject.buildDir = '../build' subprojects { project.buildDir = "${rootProject.buildDir}/${project.name}" } subprojects { project.evaluationDependsOn(':app') } task clean(type: Delete) { delete rootProject.buildDir }
D

Don

3 года назад

Ответов: 8

Google Firestore: запрос по подстроке значения свойства (текстовый поиск)

Я хочу добавить простое поле поиска, хотел бы использовать что-то вродеcollectionRef.where ('имя', 'содержит', 'searchTerm')Я пробовал использовать where ('name', '==', '% searchTerm%'), но ничего не вернул.
t

tehfailsafe

4 года назад

Ответов: 21

Как добавить документ с пользовательским идентификатором в firestore

Есть ли шанс добавить документ в коллекцию firestore с пользовательским сгенерированным идентификатором, а не с идентификатором, сгенерированным движком firestore?
H

Harvey Dent

4 года назад

Ответов: 9

NullInjectorError: No provider for AngularFirestore

I'm learning Angular looking for help in fixing the error: I'm following this link : https://github.com/angular/angularfire2/blob/master/docs/install-and-setup.md to create a angular small app with angular2 and angularfirestore2but when I hit ng serve I am getting the below error in browser console..StaticInjectorError[AngularFirestore]: StaticInjectorError[AngularFirestore]: NullInjectorError: No provider for AngularFirestore! at _NullInjector.get (core.js:923) at resolveToken (core.js:1211) at tryResolveToken (core.js:1153) at StaticInjector.get (core.js:1024) at resolveToken (core.js:1211) at tryResolveToken (core.js:1153) at StaticInjector.get (core.js:1024) at resolveNgModuleDep (core.js:10585) at NgModuleRef_.get (core.js:11806) at resolveDep (core.js:12302) I tried googling it but didn't find the exact solution nothing worked for me :(,Here is what I followed: 1) Installed Node Version 8.9.1 2) npm install -g @angular/cli --> Version 1.5.2 3) ng new 'project-name' 4) npm install angularfire2 firebase --saveHere are my app.module.ts file:import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; import { AppComponent } from './app.component'; import { AngularFireModule } from 'angularfire2'; import { environment } from '../environments/environment'; @NgModule({ imports: [ BrowserModule, AngularFireModule.initializeApp(environment.firebase) ], declarations: [ AppComponent ], bootstrap: [ AppComponent ] }) export class AppModule {} app.component.ts:import { Component } from '@angular/core'; import { AngularFirestore } from 'angularfire2/firestore'; import { Observable } from 'rxjs/Observable'; @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.css'] }) export class AppComponent { title = 'app'; constructor(db: AngularFirestore) {} } environemnt.ts:export const environment = { production: false, firebase: { apiKey: 'xxxxx', authDomain: 'aaaaaaa', databaseURL: 'bbbbbbbbbbbbbbbbbb', projectId: 'aaaaaaaaaaaaaa', storageBucket: 'aaaaaaaaaaaa', messagingSenderId: 'aaaaaaaaaaaaa' } }; then ng serve, and I am getting the above error...
D

Developer

4 года назад

Ответов: 12

ошибка NG6002: появляется в NgModule.imports AppModule, но не может быть разрешена в класс NgModule

Первое использование firestore, и я получаю эту ошибку. Судя по моему исследованию, это проблема с Айви. У меня нет большого опыта изменения tsconfig.app.json, это направление, на которое я указал после других ответов.Единственное, что я смог изменить по сравнению с исходным проектом, - это использовать Angular Fire 6 вместо 5, что я сделал изначально, чтобы следовать руководству.Вот package.json:{ "имя": "язык", "версия": "0.0.0", "scripts": { «нг»: «нг», "start": "ng serve", "build": "ng build", "тест": "нг тест", "lint": "ng lint", «e2e»: «ng e2e» }, "частный": правда, "dependencies": { "@ angular / animations": "~ 9.0.1", "@ angular / cdk": "^ 9.0.0", "@ angular / common": "~ 9.0.1", "@ angular / compiler": "~ 9.0.1", "@ angular / core": "~ 9.0.1", "@ angular / fire": "^ 6.0.0-rc.1", "@ angular / flex-layout": "^ 9.0.0-beta.29", "@ angular / forms": "~ 9.0.1", "@ angular / material": "^ 9.0.0", "@ angular / platform-browser": "~ 9.0.1", "@ angular / platform-browser-dynamic": "~ 9.0.1", "@ angular / router": "~ 9.0.1", "firebase": "^ 7.8.2", "rxjs": "~ 6.5.4", "rxjs-compat": "^ 6.5.4", "tslib": "^ 1.10.0", "zone.js": "~ 0.10.2" }, "devDependencies": { "@ angular-devkit / build-angular": "~ 0.900.2", "@ angular / cli": "~ 9.0.2", "@ angular / compiler-cli": "~ 9.0.1", "@ angular / language-service": "~ 9.0.1", "@ types / node": "^ 12.11.1", "@ types / jasmine": "~ 3.3.8", "@ types / jasminewd2": "~ 2.0.3", "codelyzer": "^ 5.1.2", "ядро жасмина": "~ 3.4.0", "jasmine-spec-reporter": "~ 4.2.1", "карма": "~ 4.1.0", "карма-хром-лаунчер": "~ 2.2.0", "карма-освещение-Стамбул-репортер": "~ 2.0.1", "карма-жасмин": "~ 2.0.1", "карма-жасмин-html-репортер": "^ 1.4.0", "транспортир": "~ 5.4.0", "ts-node": "~ 7.0.0", "tslint": "~ 5.15.0", "машинописный текст": "~ 3.7.5", "@ angular-devkit / архитектор": "^ 0.900.0-0 || ^ 0.900.0", "firebase-tools": "^ 7.12.1", "fuzzy": "^ 0.1.3", "спрашивающий": "^ 6.2.2", "запрос-автозаполнение-подсказка": "^ 1.0.1" } } angular.json{ "$ schema": "./node_modules/@angular/cli/lib/config/schema.json", «версия»: 1, "newProjectRoot": "проекты", "projects": { "язык": { "projectType": "приложение", "schematics": { "@ schematics / angular: component": { "стиль": "scss" } }, "корень": "", "sourceRoot": "src", "префикс": "приложение", "архитектор": { "строить": { "builder": "@ angular-devkit / build-angular: browser", "опции": { "outputPath": "dist / language", "index": "src / index.html", "main": "src / main.ts", "polyfills": "src / polyfills.ts", «tsConfig»: «tsconfig.app.json», "aot": правда, "ресурсы": [ "src / favicon.ico", "SRC / активы" ], "стили": [ "./node_modules/@angular/material/prebuilt-themes/deeppurple-amber.css", "src / styles.scss" ], "скрипты": [] }, "configurations": { "производство": { "fileReplacements": [ { "заменить": "src / environment / environment.ts", "with": "src / environment / environment.prod.ts" } ], "оптимизация": правда, "outputHashing": "все", "sourceMap": ложь, "extractCss": правда, "namedChunks": ложь, "extractLicenses": правда, "vendorChunk": ложь, "buildOptimizer": правда, "бюджеты": [ { "тип": "начальный", "maximumWarning": "2 МБ", "maximumError": "5 МБ" }, { "тип": "anyComponentStyle", "maximumWarning": "6кб", "maximumError": "10kb" } ] } } }, "обслуживать": { "builder": "@ angular-devkit / build-angular: dev-server", "опции": { "browserTarget": "язык: сборка" }, "configurations": { "производство": { "browserTarget": "language: build: production" } } }, "extract-i18n": { "builder": "@ angular-devkit / build-angular: extract-i18n", "опции": { "browserTarget": "язык: сборка" } }, "контрольная работа": { "builder": "@ angular-devkit / build-angular: karma", "опции": { "main": "src / test.ts", "polyfills": "src / polyfills.ts", «tsConfig»: «tsconfig.spec.json», "karmaConfig": "karma.conf.js", "ресурсы": [ "src / favicon.ico", "SRC / активы" ], "стили": [ "./node_modules/@angular/material/prebuilt-themes/deeppurple-amber.css", "src / styles.scss" ], "скрипты": [] } }, "lint": { "builder": "@ angular-devkit / build-angular: tslint", "опции": { "tsConfig": [ "tsconfig.app.json", "tsconfig.spec.json", "e2e / tsconfig.json" ], "исключать": [ "** / node_modules / **" ] } }, "e2e": { "builder": "@ angular-devkit / build-angular: транспортир", "опции": { "protractorConfig": "e2e / protractor.conf.js", "devServerTarget": "language: serve" }, "configurations": { "производство": { "devServerTarget": "language: serve: production" } } }, "развертывать": { "builder": "@ angular / fire: deploy", "опции": {} } } } }, "defaultProject": "язык" } tsconfig.app.json{ "расширяется": "./tsconfig.json", "compilerOptions": { "outDir": "./out-tsc/app", "типы": [], }, "файлы": [ "src / main.ts", "src / polyfills.ts" ], "включают": [ "src / ** / *. d.ts" ], "исключать": [ "src / test.ts", "src / ** / *. spec.ts" ] } Спасибо!
P

Pablo Aguirre de Souza

2 года назад

Ответов: 30

Как я могу устранить ошибку «TS2532: объект, возможно,« не определен »?

Я пытаюсь перестроить пример веб-приложения, в котором используются облачные функции Firebase и Firestore. При развертывании функции я получаю следующую ошибку: src/index.ts:45:18 - error TS2532: Object is possibly 'undefined'. 45 const data = change.after.data(); Это функция:export const archiveChat = functions.firestore .document("chats/{chatId}") .onUpdate(change => { const data = change.after.data(); const maxLen = 100; const msgLen = data.messages.length; const charLen = JSON.stringify(data).length; const batch = db.batch(); if (charLen >= 10000 || msgLen >= maxLen) { // Always delete at least 1 message const deleteCount = msgLen - maxLen Я просто пытаюсь развернуть функцию, чтобы проверить ее. И уже искал в Интернете похожие проблемы, но не смог найти других сообщений, соответствующих моей проблеме.
C

Constantin Beer

3 года назад

Ответов: 3

Отдельная среда разработки и продукта Firebase

Я подумываю об использовании Firebase в качестве MBaaS, однако мне не удалось найти надежного решения следующей проблемы:Я хотел бы настроить две отдельные среды Firebase, одну для разработки и одну для производства, но я не хочу вручную копировать функции (например, удаленную настройку конфигурации, правила уведомлений и т. Д.) Между среда разработки и производства.Есть ли какой-нибудь инструмент или метод, на которые я могу положиться? Настройка удаленной конфигурации или правил уведомлений с нуля может быть сложной задачей и слишком рискованной.Есть предложения? Есть ли лучший подход, чем наличие двух отдельных сред?Прежде чем опубликовать еще один ответ на вопрос, в котором объясняется, как настроить отдельные учетные записи Firebase: это не вопрос, прочтите его еще раз. Возникает вопрос: как ПЕРЕНОСИТЬ изменения между отдельными учетными записями dev и prod или любое лучшее решение, чем ручное копирование между ними.
r

racs

6 лет назад

Ответов: 12

Подколлекции запросов Firestore

Я думал, что читал, что вы можете запрашивать вложенные коллекции с новым Firebase Firestore, но я не вижу никаких примеров. Например, мой Firestore настроен следующим образом: Танцы [сборник] танцевальное имя Песни [сборник] название песни Как я могу запросить «Найти все танцы, где songName == 'X'»
N

Nelson.b.austin

4 года назад

Ответов: 11

В чем разница между Cloud Firestore и базой данных Firebase Realtime?

Google только что выпустил Cloud Firestore, свою новую базу данных документов для приложений.Я читал документацию, но не вижу большой разницы между Firestore и Firebase DB.Главное, что Firestore использует документы и коллекции, которые позволяют легко использовать запросы по сравнению с Firebase, которая представляет собой традиционную базу данных noSQL с базой JSON.Я хотел бы узнать немного больше об их различиях или использовании, а также о том, пришел ли Firestore на замену Firebase DB?
F

Francisco Durdin Garcia

4 года назад

Ответов: 7

Приложение Firebase "[ПО УМОЛЧАНИЮ]" не создано - вызовите Firebase.initializeApp () во Flutter и Firebase.

Я создаю приложение Flutter и интегрировал Firebase, но я продолжаю получать эту ошибку, когда нажимаю кнопку для регистрации, входа в систему или выхода из системы. Я видел, как другие люди задавали тот же вопрос, но мне кажется, что ни один из них не работает. Я использую Flutter и Android Studio. Как исправить эту проблему?Это отрывок из моего кодаclass HomeScreen extends StatefulWidget { @override _HomeScreenState createState() => _HomeScreenState(); } class _HomeScreenState extends State { @override Widget build(BuildContext context) { return Scaffold( backgroundColor: Colors.red, body: Center( child: Container( child: RaisedButton( onPressed: () { FirebaseAuth.instance.signOut().then((value) { Navigator.pushReplacement( context, MaterialPageRoute( builder: (context) => LoginScreen())); }); }, child: Text("Logout"), ) ) ) ); } } Ниже выброшенное исключение══╡ ИСКЛЮЧЕНИЕ, ЗАХВАТЫВАЕМО ЖЕСТОМ ╞═════════════════════════════════════════════ ══════════════════════════════ При обработке жеста возникло следующее исключение FirebaseException: [core / no-app] Приложение Firebase "[DEFAULT]" не создано - вызовите Firebase.initializeApp () Когда было сгенерировано исключение, это был стек: # 0 MethodChannelFirebase.app (пакет: firebase_core_platform_interface / src / method_channel / method_channel_firebase.dart: 118: 5) # 1 Firebase.app (пакет: firebase_core / src / firebase.dart: 52: 41) # 2 FirebaseAuth.instance (пакет: firebase_auth / src / firebase_auth.dart: 37: 47) # 3 _HomeScreenState.build. (пакет: cosytok / screen / home.dart: 20:28) # 4 _InkResponseState._handleTap (пакет: flutter / src / material / ink_well.dart: 992: 19) # 5 _InkResponseState.build. (пакет: flutter / src / material / ink_well.dart: 1098: 38) # 6 GestureRecognizer.invokeCallback (пакет: flutter / src / gestures / распознаватель.dart: 184: 24) # 7 TapGestureRecognizer.handleTapUp (пакет: flutter / src / gestures / tap.dart: 524: 11) # 8 BaseTapGestureRecognizer._checkUp (пакет: flutter / src / gestures / tap.dart: 284: 5) # 9 BaseTapGestureRecognizer.handlePrimaryPointer (пакет: flutter / src / gestures / tap.dart: 219: 7) # 10 PrimaryPointerGestureRecognizer.handleEvent (пакет: flutter / src / gestures / распознаватель.dart: 477: 9) # 11 PointerRouter._dispatch (пакет: flutter / src / gestures / pointer_router.dart: 78: 12) # 12 PointerRouter._dispatchEventToRoutes. (пакет: flutter / src / gestures / pointer_router.dart: 124: 9) # 13 _LinkedHashMapMixin.forEach (dart: collection-patch / compact_hash.dart: 377: 8) # 14 PointerRouter._dispatchEventToRoutes (пакет: flutter / src / gestures / pointer_router.dart: 122: 18) # 15 PointerRouter.route (пакет: flutter / src / gestures / pointer_router.dart: 108: 7) # 16 GestureBinding.handleEvent (пакет: flutter / src / gestures / binding.dart: 220: 19) # 17 GestureBinding.dispatchEvent (пакет: flutter / src / gestures / binding.dart: 200: 22) # 18 GestureBinding._handlePointerEvent (пакет: flutter / src / gestures / binding.dart: 158: 7) # 19 GestureBinding._flushPointerEventQueue (пакет: flutter / src / gestures / binding.dart: 104: 7) # 20 GestureBinding._handlePointerDataPacket (пакет: flutter / src / gestures / binding.dart: 88: 7) # 24 _invoke1 (dart: ui / hooks.dart: 267: 10) # 25 _dispatchPointerDataPacket (dart: ui / hooks.dart: 176: 5) (исключено 3 кадра из dart: async) Обработчик: "onTap" Распознаватель: TapGestureRecognizer # f0104 ═════════════════════════════════════════════════ ═════════════════════════════════════════════════ ════════ Исключение, обнаруженное жестом ═════════════════════════════════════ ═════════════════════════ При обработке жеста возникло следующее исключение FirebaseException: [core / no-app] Приложение Firebase "[DEFAULT]" не создано - вызовите Firebase.initializeApp ()
K

Kennedy Owusu

год назад

Ответов: 15

Для чего нужен тип данных Firebase Firestore 'Reference'?

Я просто изучаю новый Firebase Firestore, и он содержит тип данных с именем ссылка. Мне непонятно, что это делает. Это как внешний ключ? Можно ли его использовать для указания на коллекцию, которая находится где-то еще? Если ссылка является действительной ссылкой, могу ли я использовать ее для запросов? Например, могу ли я иметь ссылку, указывающую непосредственно на пользователя, вместо сохранения идентификатора пользователя в текстовом поле? Могу ли я использовать эту ссылку пользователя для запросов?
J

J&#252;rgen Brandstetter

4 года назад

Ответов: 7

Количество коллекций Cloud Firestore

Возможно ли подсчитать, сколько элементов имеет коллекция, используя новую базу данных Firebase, Cloud Firestore?Если да, то как мне это сделать?
G

Guilherme Torres Castro

4 года назад

Ответов: 20

PHP Google Firestore | Как сделать запрос по ссылочному полю?

Поле $ref->where('reference_field', '=', 'Path/To/Referenced/Document'); не работает.. $projectId, ]); $ref = $db->collection('CollectionName'); $query = $ref->where('reference_field', '=', 'Path/To/Referenced/Document'); $snapshot = $query->documents(); foreach ($snapshot as $document) { printf('Document %s returned.' . PHP_EOL, $document->id()); } } Как получить результаты, в которых поле ссылки содержит заданный путь к документу / идентификатор документа?
F

Francisco Luz

год назад

Ответов: 1

Firebase, есть ли что-нибудь лучше облачного планировщика?

Когда какая-то информация хранится в firestore, каждый документ хранит определенное время в будущем, и в соответствии с этим временем событие должно произойти в приложении пользователя.Первым способом, который я смог найти, был Cloud Function pub sub scheduler. Однако я не смог его использовать, поскольку время фиксировано.Вторым методом было использование Cloud Function + Cloud Task. Я ссылался на это. https://medium.com/firebase-developers/how-to-schedule-a-cloud-function-to-run-in-the-future-in-order-to-build-a-firestore-document-ttl-754f9bf3214aЭто прекрасно выполняло функцию, которую я действительно хотел, но в Cloud Task был фатальный недостаток, поскольку я мог сохранить событие только в течение 30 дней. Другими словами, будущее время, превышающее 30 дней, к этому не относилось.Я хочу, чтобы это событие сохранялось в долгосрочной перспективе. И я хочу, чтобы оно было в какой-то степени плавным для большого трафика.Я использую Flutter/Firebase, как реализовать вышеуказанные требования? спасибо, что прочитали, с Новым годом
r

roun paleum

год назад

Ответов: 1

Почему я получаю ошибку при операции int map во время подключения к firebase? as String' не является подтипом типа 'int'

при подключении к firebase я получаю ошибку тип 'String' не является подтипом типа 'int'. class _VeriTabaniState extends State { @override Widget build(BuildContext context) { return _buildBody(context, sahteSnapshot); } Widget _buildBody(BuildContext context, List snapshot) { return ListView( padding: EdgeInsets.only(top: 25.0), //buildListItem ztn bir liste, children içine alır direk children: //sahte datalardan gelen herşey için döndüreceğim //buildListItem'ı creat method ile oluşturdum snapshot .map((data) => _buildListItem(context, data)) .toList(), ); } _buildListItem(BuildContext context, Map data) { //sahtelerden her gelen için yeni bir kayıt üretecek final kayitWidget = Kayit.fromMap(data); return Padding( //biz bunlara tıklarız mıklarız, hangisinin olduğunu anlamak için key key: ValueKey(kayitWidget.okulisim), padding: EdgeInsets.symmetric(horizontal: 16.0, vertical: 8.2), child: Container( decoration: BoxDecoration( border: Border.all(color: Colors.blueAccent), borderRadius: BorderRadius.circular(5.0)), child: ListTile( title: Text(kayitWidget.okulisim), trailing: Text(kayitWidget.sayi.toString()), //firebase'e yollayacağız onTap: () => {}, ), ), ); } } //sahte veriler oluşturalım final sahteSnapshot = [ {"okulisim": "Sau", "sayi": "1"}, {"okulisim": "Metu", "sayi": "2"}, {"okulisim": "Kou", "sayi": "3"}, {"okulisim": "Boun", "sayi": "4"}, ]; class Kayit { String okulisim; String sayi; DocumentReference reference; //kayit icin bir constructer oluşturalım //fb icin çok kullanılan bir yapısı var bunların Kayit.fromMap(Map map, {this.reference}) : assert(map["okulisim"] != null), assert(map["sayi"] != null), okulisim = map["okulisim"], sayi = map["sayi"]; //dbdeki anlık değisimler Kayit.fromSnapshot(DocumentSnapshot snapshot) : this.fromMap(snapshot.data(), reference: snapshot.reference); @override String toString() => "Kayıt"; } на самом деле именно здесь я получаю ошибку int String:Kayit.fromMap(Map map, {this.reference}) : assert(map["okulisim"] != null), assert(map["sayi"] != null), okulisim = map["okulisim"], sayi = map["sayi"]; и это исправляется, когда я превращаю переменную int в Stringclass Kayit { String okulisim; String sayi; DocumentReference reference; //kayit icin bir constructer oluşturalım //fb icin çok kullanılan bir yapısı var bunların Kayit.fromMap(Map map, {this.reference}) : assert(map["okulisim"] != null), assert(map["sayi"] != null), okulisim = map["okulisim"], sayi = map["sayi"]; Как?
A

Ali &#220;ST&#220;NEL

год назад

Ответов: 2

Почему в запросе not equal to where clause требуется порядок по в firestore?

Я думаю, что существует проблема с кодовой базой firebase firestore для регистрации ошибок. Я получаю: Неправильный запрос.... У вас есть фильтр where с неравенством (, или >=) на поле 'myDocField', поэтому вы должны также использовать 'myDocField' в качестве первого аргумента Query.orderBy(), но ваш первый orderBy() находится на поле 'someOtherDocField' вместо этого. Кроме того, в моем запросе используется оценка "!=" и нет проверок greaterThan/lessThan. Так что мой запрос выглядит следующим образом : myQuery = myReference.where("myDocField", "!=", 0).orderBy("someOtherDocField"); И он играет хорошо и просто хочет составной индекс, когда я делаю: myQuery = myReference.where("myDocField", "!=", 0).orderBy("myDocField").orderBy("someOtherDocField"); Моя версия firebase - 6.14.10. Полагаю, мой конкретный вопрос заключается в том, почему я получаю эту ошибку?
M

Mr.Drew

год назад

Ответов: 1

2022 WebDevInsider