рдлрд╛рдпрд░рдмреЗрд╕-рдЯреВрд▓реНрд╕: 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:
) рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдХрдИ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИрдВред
рдореИрдВрдиреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдбреАрдмрдЧ рдХрд░рдиреЗ рдореЗрдВ рдХреБрдЫ рд╕рдордп рдмрд┐рддрд╛рдпрд╛ рдФрд░ рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреА рдЦреЛрдЬ рдХреА рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдлрд╛рдпрд░рд╕реНрдЯреЛрд░ рдПрдореБрд▓реЗрдЯрд░ рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ, рдореИрдВрдиреЗ рдПрдХ рдкреИрдЪ рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ рдЗрд╕ рдмрдЧ рдХреЛ рдареАрдХ рдХрд░рддрд╛ рд╣реИ/рдкреНрд░рдорд╛рдгрд┐рдд рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдЕрдкреЗрдХреНрд╖рд┐рдд рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:
--- 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 рдХреЗ рд╕рд╛рде рд╢рд┐рдк рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ) рддреЛ рдЗрд╕реЗ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдпрджрд┐ рдЖрдкрдХреЛ рдХреЛрдИ рдЕрдиреНрдп рд╕рдорд╕реНрдпрд╛ рдЖрддреА рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓реЗрдВ, рдФрд░ рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рдзрдиреНрдпрд╡рд╛рдж! :рдореБрд╕реНрдХреБрд░рд╛рдирд╛:
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
@ jkeys089 рдореИрдВ рдЖрдкрдХреЛ рдПрдХ рдЧреИрд░-рдЦреБрд▓реЗ рд╕реНрд░реЛрдд рдПрдореБрд▓реЗрдЯрд░ рдХреЛ рдкреИрдЪ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 100 рдЗрдВрдЯрд░рдиреЗрдЯ рдЕрдВрдХ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реВрдВ! рдЗрд╕реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
@ryanpbrewster рдпрд╛ @IanWyszynski рдЖрдкрдХреЛ рдХреНрдпрд╛ рд▓рдЧрддрд╛ рд╣реИ?