Firebase-tools: рдлрд╛рдпрд░рд╕реНрдЯреЛрд░ рдПрдореБрд▓реЗрдЯрд░ рд╡реЗрдмрдЪреИрдирд▓ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╕рдореНрдорд╛рдирд┐рдд рдирд╣реАрдВ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 28 рдЕрдЧре░ 2019  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: firebase/firebase-tools

рдкрд░реНрдпрд╛рд╡рд░рдг рдХреА рдЬрд╛рдирдХрд╛рд░реА

рдлрд╛рдпрд░рдмреЗрд╕-рдЯреВрд▓реНрд╕: 7.30

рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдо: рдореИрдХреЛрдЬрд╝ 10.14.6

рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓рд╛

рдореЗрд░рд╛ рд▓рдХреНрд╖реНрдп рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рдкреНрд░рдорд╛рдгрд┐рдд рдлрд╛рдпрд░рд╕реНрдЯреЛрд░ рдПрдореБрд▓реЗрдЯрд░ рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реИред рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛ рд╕реНрдерд╛рдиреАрдп рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рдлрд╛рдпрд░рдмреЗрд╕/рдХреНрд╡рд┐рдХрд╕реНрдЯрд╛рд░реНрдЯ-рдиреЛрдбрдЬ рд░реЗрдкреЛ рдХреЛ рдХреНрд▓реЛрди рдХрд┐рдпрд╛ рд╣реИ рдФрд░ https://github.com/firebase/firebase-tools/issues/ рдореЗрдВ рд╡рд░реНрдгрд┐рдд firestore-emulator/browser-quickstart рдирдореВрдиреЗ рдореЗрдВ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдирдХрд▓реА рдСрде рдЯреЛрдХрди рдЬреЛрдбрд╝рд╛ рд╣реИред резрежрежрез#рдореБрджреНрджрд╛ -релреирейрейрез

рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдиреНрдпреВрдирддрдо рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП

рдкреНрд░рдЬрдирди рдХрд░рдиреЗ рдХрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛

рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдлрд╛рдпрд░рд╕реНрдЯреЛрд░-рдПрдореБрд▓реЗрдЯрд░/рдмреНрд░рд╛рдЙрдЬрд╝рд░-рдХреНрд╡рд┐рдХрд╕реНрдЯрд╛рд░реНрдЯ рдирдореВрдирд╛ рдЪрд▓рд╛рдПрдБред

рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░

рдирдореВрдирд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП (рдпрд╛рдиреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЯреЗрдХреНрд╕реНрдЯрд░реЗрд░рд╛ рдореЗрдВ рдЯреЗрдХреНрд╕реНрдЯ рджрд░реНрдЬ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВ, рдЗрд╕реЗ рд╕реНрдерд╛рдиреАрдп рдлрд╛рдпрд░рд╕реНрдЯреЛрд░ рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ рд╕реНрдЯреЛрд░ рдХрд░реЗрдВ, рдФрд░ рдлрд┐рд░ рдЯреЗрдХреНрд╕реНрдЯрд░реЗрд░рд╛ рдХреЗ рдКрдкрд░ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рджрд┐рдЦрд╛рдП рдЧрдП рдЯреЗрдХреНрд╕реНрдЯ рдХреЛ рджреЗрдЦреЗрдВ)ред

рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реНрдпрд╡рд╣рд╛рд░

рдирдореВрдирд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЪрд▓рд╛рддреЗ рд╕рдордп рд╣рдореЗрдВ рдкреЗрдЬ рд▓реЛрдб рдХрд░рддреЗ рд╕рдордп ( Uncaught Error in onSnapshot: FirebaseError: ) рдФрд░ рдЯреЗрдХреНрд╕реНрдЯ рдкреЛрд╕реНрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╕рдордп ( Uncaught (in promise) FirebaseError: PERMISSION_DENIED: ) рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдХрдИ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИрдВред

emulator-suite firestore bug

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

@ jkeys089 рдореИрдВ рдЖрдкрдХреЛ рдПрдХ рдЧреИрд░-рдЦреБрд▓реЗ рд╕реНрд░реЛрдд рдПрдореБрд▓реЗрдЯрд░ рдХреЛ рдкреИрдЪ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 100 рдЗрдВрдЯрд░рдиреЗрдЯ рдЕрдВрдХ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реВрдВ! рдЗрд╕реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

@ryanpbrewster рдпрд╛ @IanWyszynski рдЖрдкрдХреЛ рдХреНрдпрд╛ рд▓рдЧрддрд╛ рд╣реИ?

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореИрдВрдиреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдбреАрдмрдЧ рдХрд░рдиреЗ рдореЗрдВ рдХреБрдЫ рд╕рдордп рдмрд┐рддрд╛рдпрд╛ рдФрд░ рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреА рдЦреЛрдЬ рдХреА рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдлрд╛рдпрд░рд╕реНрдЯреЛрд░ рдПрдореБрд▓реЗрдЯрд░ рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ, рдореИрдВрдиреЗ рдПрдХ рдкреИрдЪ рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ рдЗрд╕ рдмрдЧ рдХреЛ рдареАрдХ рдХрд░рддрд╛ рд╣реИ/рдкреНрд░рдорд╛рдгрд┐рдд рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдЕрдкреЗрдХреНрд╖рд┐рдд рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:

--- com/google/cloud/datastore/emulator/firestore/webchannel/FirestoreV1WebChannelAdapter.java    2019-08-28 00:42:06.000000000 -0400
+++ FirestoreV1WebChannelAdapter.java    2019-08-27 23:34:54.000000000 -0400
@@ -190,7 +190,17 @@
          String url = channel.getHandshakeHeaders().getUrl();
          QueryStringDecoder decoder = new QueryStringDecoder(url);
          String db = (String)((List)Preconditions.checkNotNull((List)decoder.parameters().get("database"), "expected %s to have a 'database' query parameter", (Object)url)).get(0);
-         Context.current().withValue(FirestoreEmulatorMetadataKeys.DATABASE_REF.contextKey(), db).run(() -> {
+         String auth = null;
+         if (decoder.parameters().get("$httpHeaders") != null) {
+            for (String rawHeader : decoder.parameters().get("$httpHeaders").get(0).split("\r\n")) {
+               if (rawHeader.startsWith("Authorization:")) {
+                  auth = rawHeader.substring(14).trim();
+                  break;
+               }
+            }
+         }
+         Context.current().withValue(FirestoreEmulatorMetadataKeys.AUTHORIZATION.contextKey(), auth).withValue(
+            FirestoreEmulatorMetadataKeys.DATABASE_REF.contextKey(), db).run(() -> {
             Object handler;
             if (url.startsWith("/google.firestore.v1.Firestore/Write/")) {
                handler = new FirestoreV1WebChannelAdapter.FirestoreWriteHandler(this.router, channel);

@ jkeys089 рдореИрдВ рдЖрдкрдХреЛ рдПрдХ рдЧреИрд░-рдЦреБрд▓реЗ рд╕реНрд░реЛрдд рдПрдореБрд▓реЗрдЯрд░ рдХреЛ рдкреИрдЪ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 100 рдЗрдВрдЯрд░рдиреЗрдЯ рдЕрдВрдХ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реВрдВ! рдЗрд╕реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

@ryanpbrewster рдпрд╛ @IanWyszynski рдЖрдкрдХреЛ рдХреНрдпрд╛ рд▓рдЧрддрд╛ рд╣реИ?

рдкреНрд░рднрд╛рд╡рд╢рд╛рд▓реА рдХрд╛рд░реНрдп :)

рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рдХреНрдпрд╛ рд╣реИ, рдпрд╣ рдЙрд╕ рдХреЛрдб рдХреЗ рд╕рдорд╛рди рд╣реИ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рдорд╛рдорд▓реЗ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред рдпрджрд┐ рдЖрдк рдлрд╛рдпрд░рд╕реНрдЯреЛрд░ рдПрдореБрд▓реЗрдЯрд░ рдХреЗ v1.8.1 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рддреЗ рд╣реИрдВ (рдЬреЛ firebase-tools рдкреИрдХреЗрдЬ рдХреЗ v7.3.0 рдХреЗ рд╕рд╛рде рд╢рд┐рдк рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ) рддреЛ рдЗрд╕реЗ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпрджрд┐ рдЖрдкрдХреЛ рдХреЛрдИ рдЕрдиреНрдп рд╕рдорд╕реНрдпрд╛ рдЖрддреА рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓реЗрдВ, рдФрд░ рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рдзрдиреНрдпрд╡рд╛рдж! :рдореБрд╕реНрдХреБрд░рд╛рдирд╛:

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

roosi picture roosi  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

DragonOsman picture DragonOsman  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

laurenzlong picture laurenzlong  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ahmadalibaloch picture ahmadalibaloch  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

chen86860 picture chen86860  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ