Firebase-tools: Firestore ์—๋ฎฌ๋ ˆ์ดํ„ฐ WebChannel ์ธ์ฆ์ด ์ ์šฉ๋˜์ง€ ์•Š์Œ

์— ๋งŒ๋“  2019๋…„ 08์›” 28์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: firebase/firebase-tools

ํ™˜๊ฒฝ ์ •๋ณด

Firebase ๋„๊ตฌ: 7.30

ํ”Œ๋žซํผ: macOS 10.14.6

ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค

๋‚ด ๋ชฉํ‘œ๋Š” ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋กœ์ปฌ๋กœ ์ž‘๋™ํ•˜๋Š” ์ธ์ฆ๋œ Firestore ์—๋ฎฌ๋ ˆ์ดํ„ฐ ์š”์ฒญ์„ ์–ป๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํŠน์ • ์‚ฌ์šฉ ์‚ฌ๋ก€๋Š” ๋กœ์ปฌ ํ…Œ์ŠคํŠธ์šฉ์ž…๋‹ˆ๋‹ค. ์ด ์‚ฌ๋ก€๋ฅผ ํ…Œ์ŠคํŠธํ•˜๊ธฐ ์œ„ํ•ด https://github.com/firebase/firebase-tools/issues/์— ์„ค๋ช…๋œ ๋Œ€๋กœ firebase/quickstart-nodejs ์ €์žฅ์†Œ๋ฅผ ๋ณต์ œํ•˜๊ณ  firestore-emulator/browser-quickstart ์ƒ˜ํ”Œ์— ๊ฐ„๋‹จํ•œ ๋ชจ์˜ ์ธ์ฆ ํ† ํฐ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. 1001#์ด์Šˆ๋Œ“๊ธ€ -523319483.

๋ฌธ์ œ ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ์ตœ์†Œ ํ…Œ์ŠคํŠธ ์‚ฌ๋ก€๋Š”

์žฌํ˜„ ๋‹จ๊ณ„

firestore-emulator/browser-quickstart ์ƒ˜ํ”Œ์„ ์ •์ƒ์ ์œผ๋กœ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์ƒ๋˜๋Š” ํ–‰๋™

์ƒ˜ํ”Œ ํ”„๋กœ์ ํŠธ๋Š” ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(์˜ˆ: ์‚ฌ์šฉ์ž๊ฐ€ ํ…์ŠคํŠธ ์˜์—ญ์— ํ…์ŠคํŠธ๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ๋กœ์ปฌ Firestore ์—๋ฎฌ๋ ˆ์ดํ„ฐ์— ์ €์žฅํ•œ ๋‹ค์Œ ํ…์ŠคํŠธ ์˜์—ญ ์œ„์— ์„ฑ๊ณต์ ์œผ๋กœ ํ‘œ์‹œ๋œ ํ…์ŠคํŠธ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Œ).

์‹ค์ œ ํ–‰๋™

์ƒ˜ํ”Œ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ํŽ˜์ด์ง€๋ฅผ ๋กœ๋“œํ•  ๋•Œ( Uncaught Error in onSnapshot: FirebaseError: ) ํ…์ŠคํŠธ๋ฅผ ๊ฒŒ์‹œํ•˜๋ ค๊ณ  ํ•  ๋•Œ( Uncaught (in promise) FirebaseError: PERMISSION_DENIED: ) ๋ธŒ๋ผ์šฐ์ € ๊ฐœ๋ฐœ ์ฝ˜์†”์— ์—ฌ๋Ÿฌ ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

emulator-suite firestore bug

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

@jkeys089 ๋น„์˜คํ”ˆ ์†Œ์Šค ์—๋ฎฌ๋ ˆ์ดํ„ฐ์— ํŒจ์น˜๋ฅผ ์ œ๊ณตํ•˜์—ฌ ์ธํ„ฐ๋„ท ํฌ์ธํŠธ 100์ ์„ ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ์ด ์‚ฌ์‹ค์„ ๋ช…ํ™•ํžˆ ํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

@ryanpbrewster ๋˜๋Š” @IanWyszynski ์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ•˜์„ธ์š”?

๋ชจ๋“  3 ๋Œ“๊ธ€

์‹ค์ œ๋กœ ์ด ๋ฌธ์ œ๋ฅผ ๋””๋ฒ„๊น…ํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์„ ๋ณด๋ƒˆ๊ณ  ๋ฌธ์ œ๋ฅผ ๋ฐœ๊ฒฌ ํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐ ํ•ฉ๋‹ˆ๋‹ค. Firestore ์—๋ฎฌ๋ ˆ์ดํ„ฐ ์˜ ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜๋Š” ์—†์ง€๋งŒ ์ด ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ํŒจ์น˜๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. / ์ธ์ฆ๋œ ์š”์ฒญ์ด ์˜ˆ์ƒ๋Œ€๋กœ ์ž‘๋™ํ•˜๋„๋ก ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.

--- 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 ์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ•˜์„ธ์š”?

์ธ์ƒ์ ์ธ ์ž‘ํ’ˆ :)

๊ฐ€์น˜๊ฐ€ ์žˆ๋Š” ๊ฒƒ์€ ์ด ๊ฒฝ์šฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์‹ค์ œ๋กœ ์ถ”๊ฐ€๋œ ์ฝ”๋“œ์™€ ๋งค์šฐ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค. Firestore ์—๋ฎฌ๋ ˆ์ดํ„ฐ์˜ v1.8.1( firebase-tools ํŒจํ‚ค์ง€์˜ v7.3.0๊ณผ ํ•จ๊ป˜ ์ œ๊ณต๋จ)์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ฉด ์ด ๋ฌธ์ œ๊ฐ€ ์ˆ˜์ •๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ด ๋ฌธ์ œ๋ฅผ ๋‹ค์‹œ ์—ฌ์‹ญ์‹œ์˜ค. ์‹ ๊ณ ํ•ด ์ฃผ์…”์„œ ๋‹ค์‹œ ํ•œ ๋ฒˆ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค! :์›ƒ์Œ์ด ๋„˜์น˜๋Š”:

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰