
English: 
SPEAKER: What kind of
coffees have you had today?
DAVID EAST: I haven't
really had that much.
I woke up, and I
had a cold brew.
And then I came into work,
and then I had a macchiato.
Well no, that's not true.
I actually went
back before work,
and I picked up a pumpkin
latte, because, you know,
it's September.
Right before lunch, I
had my pre-lunch mocha.
And then after lunch, I
had my post-lunch mocha.
And then we were
filming Ask Firebase,
so I had my pre Ask Firebase
triple shot, venti, Americano,
non-whip mocha-- so
not that much coffee.
[MUSIC PLAYING]
What's up, everybody?
Welcome back to a brand new
episode of #AskFirebase,
the show where you
send your questions
in on YouTube, Twitter, Stack
Overflow, and we answer them.
My name is David East.
I'm the Developer Advocate here
at Google on the Firebase team.
In case you didn't know,
we are having our largest
ever Firebase Developer summit
this November 7 in Berlin.
And we want you to participate.
So we're going to have lots of
members of the Firebase team
there.

Chinese: 
你今天喝了哪样咖啡?
大卫衣斯特:
我还没有喝很多
醒来后，喝了杯冷泡咖啡
然后上班，喝了一杯玛奇朵
不是啊，这不是真的
回到上班之前
喝了一杯南瓜拿铁
你知道嘛，因为这是九月
吃午饭前，喝了杯午餐前摩卡
吃午饭后，喝了杯午餐后摩卡
然后我们拍摄Ask Firebase
拍摄Ask Firebase前的
加大杯3份浓缩咖啡的美式咖啡
然后一杯无奶油摩卡咖啡
我不是喝那么多咖啡
[音乐]
大家好，什么事?
欢迎来到新一集的#AskFirebase
你们通过YouTube、Twitter
Stack、Overflow发送问题
然后由我们回答
我的名字是大卫衣斯特
我在这里是Google的
Firebase团队的开发人员
倘若你不知道，今年11月7日
我们在柏林举行了有史以来
最大型的Firebase开发者峰会
而我们希望你也能够参加
所以我们很多Firebase团队的成员
也会出现在那里

Indonesian: 
Anda minum kopi apa hari ini?
Saya baru minum sedikit.
Saya bangun, minum kopi dingin.
Lalu saya berangkat kerja
dan minum macchiato.
Ah, tidak. Itu bohong.
Sebenarnya, saya kembali
sebelum bekerja
dan minum latte labu karena, Anda tahu,
ini bulan September.
Sebelum makan siang, saya minum moka
pra-makan siang.
Lalu setelah makan siang, saya
minum moka pascamakan siang.
Lalu kami memfilmkan
Ask Firebase,
maka saya minum moka pre-Ask Firebase
tanpa krim kocok, dosis tiga kali lipat,
besar, Americano-- jadi, tak
terlalu banyak kopi.
Apa kabar, semuanya?
Selamat datang kembali di
episode terbaru #AskFirebase,
acara untuk mengajukan
pertanyaan Anda
lewat YouTube, Twitter, Stack
Overflow, dan kami menjawabnya.
Saya David East.
Saya Penasehat Pengembang di Google
dalam tim Firebase.
Jika Anda belum tahu,
kami tengah mengadakan
pertemuan terbesar Pengembang Firebase
tanggal 7 November ini di Berlin.
Dan kami ingin Anda ikut serta.
Kami akan menghadirkan
banyak anggota tim Firebase di sana.

Korean: 
오늘 어떤 커피 드셨나요?
그다지 많이 마시진 않았어요
일어나서 콜드브루 마시고
출근해서 마끼아또 한 잔 마셨는데
아, 아니다
출근 전에 들러서
펌킨 라떼 한 잔 마셨어요
가을이잖아요
점심 전에는 식전 모카를 마시고
점심 후에는 식후 모카를 마시고
이제 Ask Firbase를
찍어야 하니
트리플 샷 벤티 아메리카노를 마셔줬죠
휘핑 없는 모카도 한 잔 마셨으니
별로 안 마신 거죠
[테마 음악 재생]
다들 잘 지내시죠?
#AskFirebase에
오신 것을 환영합니다
각종 SNS에서
받은 질문에 답하는 쇼입니다
저는 데이빗 입니다
Google Firebase 팀의
개발자이자 개발 대변인이죠
알고 계신지 모르겠는데
11월 7일 베를린에서
Firebase 개발자 회담이 있어요
여러분도 함께 하셨으면 좋겠네요
Firebase 팀의
여러 멤버들이 함께할
예정입니다

Portuguese: 
Quais cafés você tomou hoje?
Tomei poucos na verdade.
Acordei e bebi um café frio.
Então, vim para o trabalho
e tomei um macchiato.
Bem, não, não é verdade.
Na verdade, fui antes do trabalho,
pegar um latte de abóbora,
porque é setembro.
Um pouco antes do almoço,
tomei um mocha.
Depois do almoço,
tomei outro mocha.
Então, estávamos filmando
Ask Firebase,
por isso, tomei uma dose tripla,
um grande, um Americano,
e um mocha sem espuma...
Só um pouco de café.
Firebase apresenta:
#Ask Firebase
E aí, galera?
Bem-vindos de volta
ao mais novo episódio de #AskFirebase,
o programa para
mandar suas perguntas
pelo YouTube, Twitter, Stack
Overflow e nós respondemos.
Meu nome é David East.
Sou Developer Advocate aqui
no Google na equipe de Firebase.
Caso vocês ainda não saibem,
teremos nosso maior
encontro de Desenvolvedores Firebase,
no dia 7 de novembro em Berlim.
E queremos que vocês participem.
Teremos muitos integrantes 
do time de Firebase lá.

Spanish: 
¿Qué tipos de café has tomado hoy?
En realidad no he tomado tanto.
Me desperté, tomé un filtrado en frío.
Entonces vine al trabajo
y me tomé un macchiato.
Bueno no, no es cierto.
En realidad volví antes del trabajo,
y tomé un latte de calabaza,
porque, ya sabes, es septiembre.
Justo antes del almuerzo,
me tomé un moca prealmuerzo.
Y luego después del almuerzo,
me tomé un moca postalmuerzo.
Y después ibamos
a grabar Ask Firebase,
así que antes de Ask Firebase me tomé
un moca triple americano, tamaño Venti
sin batir...
así que no tomé tanto café.
Firebase presenta #AskFirebase
con David East
¿Qué tal?
Bienvenidos a un nuevo episodio
de #AskFirebase,
el show donde enviáis preguntas
a YouTube, Twitter, Stack Overflow
y nosotros contestamos.
Soy David East,
Defensor de Desarrolladores aquí en Google
en el equipo de Firebase.
Por si no lo sabíais,
vamos a celebrar la mayor conferencia
de Desarrolladores de Firebase
el 7 de noviembre en Berlín.
Y queremos que participéis.
Tendremos allí a muchos miembros
del equipo de Firebase.

Arabic: 
- ما أنواع القهوة التي حصلت عليها اليوم؟
- لم أحصل على الكثير في الحقيقية.
استيقظت، واحتسيت قهوة باردة.
ثم جئت للعمل وتناولت ماكياتو.
حسناً لا، ليس صحيحاً.
في الواقع عدتُ للبيت قبل للعمل
وأحضرت كوب بمبكن لاتيه؛
لأنه، كما تعلم، إنه سبتمبر.
قبل الغداء احتسيت موكا ما قبل الغداء.
ثم بعد الغداء احتسيت موكا ما بعد الغداء.
ثم كنا نصور فيديو Ask Firebase
لذلك حصلت قبل التصوير على ثلاث دفعات
من الحجم المتوسط من الأمريكانو
وموكا غير مخفوقة--
لذا ليس هذا القدر الكبير من القهوة.
Firebase تقدم
برنامج #AskFirebase مع دافيد إيست.
كيف حالكم جميعًا؟
مرحبًا بكم في حلقة جديدة من #AskFirebase
البرنامج الذي ترسلون إليه أسئلتكم
على يوتيوب وتويتر وستاك أوفرفلو،
ونحن نجيب عليهم.
اسمي دافيد إيست.
أنا المروج لتقنيات المطور هنا في جوجل
في فريق Firebase.
في حالة لم تكن تعلم فإننا سنقيم أكبر
قمة لمطوري Firebase
في السابع من نوفمبر في برلين.
ونريدك أن تشارك.
سيكون هناك العديد من أعضاء فريق Firebase.

Japanese: 
今日飲んだコーヒーの種類は？
実は まだ
あまり飲んでないんだ
起きてから水だしコーヒーを入れて
仕事に見てから
マキアートを飲んで
いや 違う
仕事の前に戻ってきて
パンプキンラテをひっかけた
だって 分かるだろ９月だからね
ランチの直前には
ランチ前モカを飲んで
ランチの後には
ランチ後のモカ
そして AskFirebase を
撮影していたから
AskFirebase 前に駆けつけ３杯
ヴェンチ アメリカーノ ホイップ抜きのモカ
やっぱ あまり飲んでないね
皆さんお元気ですか？
#AskFirebase の新エピソードに
おかえりなさい
この番組では YouTube や
Twitter や Stack Overflow から
送られて来た質問にお答えします
僕はデビット・イースト
Google の Firebase チームの
開発者広報です
ご存知ない方のために
最大の Firebase 開発者サミットが
11 月 7 日にベルリンで開催されます
皆さんの参加をお待ちしています
Firebase チームのメンバーも
沢山 参加しますよ

Japanese: 
刺激的な製品も新たに出ますので
絶対に確認したくなるはずです
詳しくは説明文にリンクがあります
最初の質問は
YouTube からサミアのものです
「Angular 1 用 AngularFire と
Angular 2 用 AngularFire の
違いは何？」
サミアは何か知ってる？
良い質問だね
ライブラリから１つずつ
ビルドをセットし始める時に
それをフレームワークにデザインします
AngularFire 1 では
Firebase を
双方向データバインドシステムに
シッカリと統合します
双方向性データバインドシステムとは
モデルが１回更新する度に
ビューが更新して
ビューが更新すると
モデルも更新します
そして私たちは３つ目の方向を作りました
何かをそこに更新する度に
全てデータベースに戻すのです
これを３方向性データバインドと言います
Angular 2 と共に
Observable システムがあるのです
そうすれば どんなデータでも
Web ページにダウンロードする前に
データの流れを組み立てられます
私たちがしたのは
Firebase データベースを使うことと
リアルタイムデータストリームを
行なうことです
そして データベースからビューへの
データビルドを本当に簡単にする―

English: 
And we have some really
exciting product updates.
So you definitely want
to check that out.
And we have a link in
the description for more.
So the first question
comes from Samir
who asked, on
YouTube-- what are some
of the differences between
AngularFire for Angular 1
and AngularFire for Angular 2?
And you know what, Samir?
That is a great question.
So when we set out to build
each one of these libraries,
we design them
for the framework.
So for AngularFire 1,
we tightly integrated
Firebase into the two-way
data binding system.
The two-way data binding system
is-- is every single time
your model updates,
your view updates.
Or if your view updates,
your model updates.
And we created a third part
of that where every time
you update something,
it goes all the way back
to your database.
We call that three-way
data binding.
So with Angular 2, they
have an observable system,
which allows you
to model your data
flow before any data is actually
downloaded to your web page.
And what we've done is we've
taken the Firebase database,
and we've taken the
real time data streams,
and we've built them into
these observables, which

Spanish: 
Y tenemos unas actualizaciones
de productos muy interesantes.
Así que tenéis que echarle un vistazo.
Y tenemos un enlace en la descripción
para más información.
Entonces, la primera pregunta
la hace Samir
que preguntó en YouTube:
"¿Cuáles son algunas de las diferencias
entre AngularFire para Angular 1
y AngularFire para Angular 2?"
Y ¿sabes qué, Samir?
Es una gran pregunta.
Cuando nos dispusimos a crear
cada una de estas bibliotecas,
las diseñamos para el Framework.
Para AngularFire 1,
integramos estrechamente
Firebase en el sistema
de enlace de datos bidireccional.
Con el sistema de enlace
de datos bidireccional
siempre que se actualiza tu modelo,
se actualiza tu vista.
O si se actualiza tu vista,
se actualiza tu modelo.
Y creamos una tercera parte de eso,
donde cada vez que actualizas algo,
llega hasta tu base de datos.
Lo llamamos enlace de datos
tridireccional.
Con Angular 2,
tienes un sistema observable,
que te permite modelar
el flujo de datos
antes de que los datos
se descarguen a la página web.
Y lo que hemos hecho es
tomar la base de datos de Firebase
y los flujos de datos en tiempo real,
y los hemos integrado
en estos observables,

Indonesian: 
Dan kami punya pembaharuan
produk yang sangat seru.
Jadi, pasti Anda ingin
menyaksikannya.
Dan kami punya tautan
di bagian deskripsi.
Jadi, pertanyaan pertama
datang dari Samir
yang bertanya, di YouTube-- apa saja
perbedaan antara AngularFire
untuk Angular 1
dengan AngularFire
untuk Angular 2?
Dan Anda tahu, Samir?
Itu pertanyaan hebat.
Saat kami mulai kembangkan
tiap perpustakaan ini,
kami merancangnya
untuk kerangka kerja ini.
Untuk AngularFire 1,
kami integrasikan dengan ketat
Firebase dalam sistem
pemberkasan data dua-arah.
Pemberkasan data dua-arah
yakni-- yakni selalu
selalu model pembaharuan Anda.
Atau jika
tinjau pembaharuan,
model pembaruan Anda.
Dan kami menciptakan bagian ketiga
dari itu yang setiap kali
Anda membaharui sesuatu, itu kembali
ke database Anda.
Kami sebut pemberkasan tiga-arah.
Jadi, dengan Angular 2, sistem
ini dapat diamati
sehingga Anda dapat
memodelkan aliran data
Anda sebelum data benar-benar
diunduh ke laman web Anda.
Dan sudah kami lakukan, yakni
kami ambil database Firebase
dan kami ambil
aliran data waktu-nyata
dan kami membuatnya
jadi dapat diamati hingga

Arabic: 
ولدينا بعض التحديثات المثيرة لبعض المنتجات
لذا فإنك سترغب بالتأكيد في معرفتها.
ولمعرفة المزيد هناك رابط في أسفل الفيديو.
إذن السؤال الأول مقدم من سمير
الذي سألنا على يوتيوب--
ما هي الفروق بين AngularFire لـAngular 1
وAngularFire لـAngular 2؟
أتعلم ماذا، يا سمير؟
إنه سؤال عظيم.
عندما نبدأ في بناء كل من هؤلاء المكتبات
فإننا نصممهم بما يناسب إطار العمل.
لذا في AngularFire 1 فقد أدمجنا
Firebase مع نظام ربط البيانات
ثنائي الاتجاه.
نظام ربط البيانات ثنائي الاتجاه هو--
أنه في كل مرة
يتم تحديث نموذجك، فإن عرضك يتحدث.
أو لو تم تحديث عرضك فإن نموذجك يتحدث.
وقد أنشأنا جزءًا ثالثًا من ذلك
حيث في كل مرة
تقوم بتحديث شيء فإنه يعود
إلى قاعدة البيانات.
نسميه ربط بيانات ثلاثي الاتجاه.
في Angular 2 لديهم نظام قابل للمراقبة
يتيح لك أن تشكل مسار بياناتك
قبل أن يتم تنزيل أي بيانات
إلى صفحة الويب الخاصة بك.
وما قمنا به هو
أننا أخذنا قاعدة بيانات Firebase
وأخذنا مسارات البيانات في الوقت الحقيقي
وقمنا ببنائهم في هؤلاء القابلين للمراقبة

Portuguese: 
E temos atualizações interessantes
de alguns produtos.
Vocês vão mesmo querer vê-las.
E temos um link na descrição para mais.
A primeira pergunta vem do Samir,
que mandou pelo YouTube:
quais são algumas das diferenças
entre AngularFire para Angular 1
e AngularFire para Angular 2?
Quer saber, Samir?
Está é uma ótima pergunta.
Quando construímos 
cada uma destas bibliotecas,
as desenvolvemos para a estrutura.
Então para AngularFire1, integramos
Firebase num sistema
de informação de duas vias.
O sistema de informação 
de duas vias é sempre
atualização de modelo
e de aparência.
Se a aparência atualiza,
o modelo também.
E criamos uma terceira parte,
que cada vez
que vocês atualizarem,
ficará gravado
no banco de dados.
Chamamos de
sistema de três vias.
Com Angular 2, eles têm
um sistema de observação,
que permite modelarem o fluxo de dados
antes que qualquer informação
seja colocada na página.
E o que fizemos foi
pegar o banco de dados Firebase
e os fluxos de dados em tempo real,
os construímos neste
sistema de observação,

Chinese: 
我们有一些令人兴奋的产品更新
你们肯定想一探究竟
我们在描述中提供了链接
以便你们了解更多的详情
第一个问题来自萨米尔
他在YouTube上问
- AngularFire的Angular 1与
AngularFire的Angular 2
之间有哪些差异?
你知道嘛，萨米尔?
这是个很好的问题
当我们开始构建每一个程式库
我们是为框架而设计
对于AngularFire 1
我们把Firebase与
双向数据绑定系统紧密结合
双向数据绑定系统
使你每一次更新模型时
视图也会更新
或者更新视图时，模型也会更新
而我们创建了第三部分
使你们每一次更新的东西
也会回到数据库
我们称之为三方数据绑定
至于Angular 2
它们有一个监控属性系统
允许你们对数据流建模后
才实际地把任何数据下载到网页
我们所做的是
我们采用了Firebase数据库
我们采用了实时数据流
把它们构建成这些监控属性

Korean: 
여러 가지 제품 업데이트 소식이
준비됐으니
꼭 오셔서 참여하시기 바랍니다
자세한 사항은 링크를
남겨놨으니 방문하세요
첫 질문은 서미어 님이 주셨네요
Angular1의
AngularFire와
Angular2의
AngularFire에는
어떤 차이점이 있나요?
그거 아세요?
멋진 질문이에요!
저희가 이런 류의
라이브러리를 빌드할 때
보통 프레임워크를 통해 짜게 되죠
AngularFire 1의 경우,
Firebase의
쌍방 데이터 바인딩
시스템에 접목합니다
쌍방향 데이터 바인딩은
모델이 업데이트할 때마다
뷰도 같이 업데이트 되죠
아니면 뷰가 업데이트될 때, 되지요
거기서 추가로 저희는
업데이트가 이루어질 때마다
데이터베이스로 돌아가게끔
설정하게 되는데
3방향 데이터 바인딩이라 하죠
Angular 2의 경우,
측량 시스템을 가지고 있어서
웹에 데이터가
실제로 다운로드 되기 전에
모델 데이터를 먼저
흘려보낼 수 있게 합니다
저희는 Firebase 데이터베이스와
실시간 데이터스트림을
이런 측량 시스템에
빌트인으로 만들었죠

Arabic: 
ما يجعل من السهل
ربط البيانات من قاعدة بياناتك
مباشرة إلى عرضك.
ويمكنك رؤيته ينحدث في الوقت الحقيقي.
إذن، الفروق هي، يا سمير،
بالنسبة لـAngular 1
فقد أدمجناه مع نظام ربط البيانات
ثنائي الاتجاه.
أما Angular 2 فقد أدمجناه
مع نظام قابل للمراقبة.
سؤال عظيم.
السؤال التالي مقدم من قبل دانيل على تويتر.
يسأل دانيل-- هل ستقومون ببناء
أي نوع من مستودع تلقيم Angularfire 2؟
سيكون من الرائع أن أكون قادرًا على رؤية
كل شيء يعمل
معًا، والممارسات الأفضل.
حسنًا يا دانيل، الحقيقة أننا نعمل
على شيء مثل ذلك.
إننا في الوقت الحالي نعد مجموعة من الوصفات
حتى تتمكن من رؤية-- 
كيفية تفقد بيانات موجودة
وكيفية الجمع بين
أكثر من مسار قابل للمراقبة.
كل هذه الأشياء التي تريد أن تعرف
كيفية فعلها في AngularFire 2
سيكون لدينا مستودع كامل لها.
والآن لو ذهبت إلى "إنشاء"
و"إقامة الاتجهات"
يمكنك أن تبتدئ مع Angular 2
وAngularFire 2 في خلال دقائق.
لذا أنصحك أن تتفقد ذلك.
والرابط في أسفل الفيديو.
سؤال عظيم.

Japanese: 
Observables 内に
それをビルドすると
リアルタイムでデータが
更新するのが分かります
だからサミア 違いについては
Angular 1 は
双方向データバインドシステムに
シッカリ統合されてるし
Angular 2 は Observable システムに
シッカリと統合されているということだ
良い質問だったね
次の質問は Twitter から
ダニエルのものです
「AngularFire 2 の短いリポジトリは
まとめられないの？
全てが一緒に動作して
最高の実践をしたら凄いと思うんだけど」
ダニエル 実は僕たち
それと似たようなことを手掛けているんだ
では これから
沢山のレシピを用意していきます
なので 既存のデータを確認する方法は？とか
Observable ストリームを複数つなげるには？
などが見れます
AngularFire 2 について
知りたいことは全て
リポジトリにしていきます
今すぐにインストールして
セットアップするなら
ほんの数分で
Angular 2 と AngularFire 2 を
始めることができます
だから確認して下さい
リンクは説明文にあります
良い質問でした

Chinese: 
使真的很容易从你们的
数据库绑定数据
到视图
而你们可以看到实时更新
萨米尔，两者区别在于
对于Angular 1
我们与双向数据绑定系统紧密结合
对于Angular 2
我们与监控属性系统紧密结合
这是很棒的问题
下一个问题来自丹尼尔
他在Twitter上问
丹尼尔问我们会否
把任何形式的angularfire2
种子存储库放在一起?
如果能够看到所有程式一起运作
以及最佳做法，这将会是很棒的
嗯，丹尼尔，我们实际上
正在进行类似的东西
现在我们正在准备一堆食谱
你们可以看到我
怎么样检查现有数据?
怎样组合多个监控属性流在一起?
所有你们要知道这些东西
怎样处理AngularFire 2
我们将会有整个存储库处理
而现在如果你们要安装及设置指示
首先开始使用Angular 2
而AngularFire 2
事际上只需要几分钟
你们应该去看看
我们在描述中提供了链接
很棒的问题

Indonesian: 
memudahkan pemberkasan
data dari database Anda tepat
ke tinjauan Anda. Bisa
Anda lihat, itu memperbaharui secara
real-time.
Jadi, Samir, perbedaannya
adalah, untuk Angular 1,
kami integrasikan ketat ke
dalam pemberkasan data dua-arah.
Dan untuk Angular 2,
kami integrasikan ketat
ke dalam sistem
yang dapat diamati.
Pertanyaan hebat.
Pertanyaan berikut
datang dari Daniel di Twitter.
Dan Daniel bertanya--
akankah Anda menggabung
repositori seed AngularFire2
jenis apapun?
Karena akan hebat jika bisa
melihat semuanya bekerja
bersamaan dan semua
prosedur terbaiknya.
Ya, Daniel, sebenarnya
kami mengerjakan
sesuatu yang mirip dengan itu.
Jadi, kini kami tengah persiapkan
kumpulan resep
agar tahu, misal-- bagaimana
memeriksa data yang ada?
Bagaimana padukan aliran
yang bisa diamati bersama?
Semua cara yang ingin
Anda ketahui
dilakukan dengan AngularFire 2
akan dibuat
dalam repositori.
Sekarang bila Anda masuk ke
pengarahan pasang dan setelan,
Anda bisa mulai
dengan Angular 2
dan AngularFire2, sungguh
hanya dalam beberapa menit.
Itu harus Anda saksikan.
Tautannya ada
di bagian deskripsi.
Pertanyaan hebat.

English: 
make it really easy to bind
data from your database right
to your view.
And you can see it just
update in real time.
So, Samir, the differences
are is, for Angular 1,
we tightly integrated into the
two-way data binding system.
And for Angular 2,
we're tightly integrated
into the observable system.
Great question.
So this next question comes
from Daniel on Twitter.
And Daniel asked-- will
you be putting together
any sort of
angularfire2 seed repo?
Because it would be great to be
able to see everything working
together and all
the best practises.
Well, Daniel, we
are actually working
on just something like that.
[SLURP] So right now we're
preparing a bunch of recipes
so you can see, like-- how
do I check for existing data?
How do I combine multiple
observable streams together?
All these things
that you want to know
how to do with
AngularFire 2, we're
going to have an
entire repo for.
And right now, if you go to the
install and set-up directions,
you can get started
with Angular 2
and AngularFire 2 in really
just a matter of minutes.
So you should go check that out.
And the link is in
the description.
Great question.

Spanish: 
lo que realmente facilita enlazar
los datos de la base de datos
directamente a la vista.
Y podemos ver cómo se actualiza
en tiempo real.
Así que, Samir, las diferencias
son que, para Angular 1,
integramos estrechamente en el sistema
de enlace de datos bidireccional.
Y para Angular 2,
integramos estrechamente
en el sistema observable.
Buena pregunta.
La siguiente pregunta la hace
Daniel en Twitter.
Y Daniel preguntó:
"¿Van a ofrecer algún tipo de repositorio
de valores originales de angularfire2?
Sería genial poder verlo
todo junto funcionando
y las mejores prácticas."
Bueno, Daniel, estamos trabajando
justo en algo parecido.
Ahora mismo estamos preparando
un montón de recetas
para poder ver, como,
¿Cómo busco datos existentes?
¿Cómo combino varias secuencias
observables juntas?
Todo lo que quieres saber
hacer con AngularFire 2,
tendremos un repositorio completo.
Ahora mismo, si vas a las instrucciones
de instalación y configuración,
puedes empezar a trabajar
con Angular 2
y AngularFire 2 en cuestión de minutos.
Deberías echarle un vistazo.
Y el enlace está en la descripción.
Buena pregunta.
Chad preguntó en Twitter:

Korean: 
그러면 데이터베이스에서 뷰로 데이터를
바인딩 하기 쉽죠
실시간으로
업데이트되는 게 바로 보여요
그러니 서미어님,
차이점은 Angular 1은
쌍방향 바인딩 시스템에 접목한 것이고
Angular 2는 아주 타이트하게
관측 시스템에 접목한 것입니다
좋은 질문이네요
다음 질문은 트위터의
다니엘이 주셨어요
Angularfire2 시드 리포를
만들 생각이 있나요?
최적화된 느낌으로
다 맞물려서 돌아가면
정말 멋질 것 같아요
네, 다니엘님, 그것과 비슷한 것을
현재 작업하고 있어요
현재 활용 가능한 다양한
레시피를 준비 중입니다
남은 데이터를 재는 방법이나
관측 스트림을 통합하는
방법과 같은 것들이죠
AngularFire2 관련해서
궁금하신 분들 것들은
새로운 리포를 갖게 될 거예요
지금 바로 설치하셔서
방향만 설정하시면
Angular 2를
시작하실 수 있어요
AngularFire 2도
빠른 시간안에 가능합니다
그러니 한 번 살펴보세요
관련 링크는 아래에 남길게요
훌륭한 질문입니다

Portuguese: 
que facilita o vínculo de informação
no seu banco de dados bem na sua frente.
E podem ver a atualização em tempo real.
Então, Samir, as diferenças são:
no Angular 1, o integramos no sistema
de informação de duas vias.
E no Angular 2, nós o integramos
no sistema de observação.
Ótima pergunta.
A próxima pergunta
vem do Daniel pelo Twitter.
E o Daniel perguntou:
Vocês vão agregar
alguma espécie de relatório
sobre angularfire2-seed?
Seria ótimo poder ver tudo funcionando
ao mesmo tempo e da melhor maneira.
Bem, Daniel, 
estamos mesmo trabalhando
para fazer isso.
Agora estamos preparando
um monte de receitas
para que possam ver, tipo,
como vejo dados existentes?
Como combino múltiplos
fluxos observáveis juntos?
Todas as coisas que querem saber
como fazer no AngularFire2,
vamos fazer um relatório.
E agora, se forem para
de instalação e ajuste,
poderá começar com Angular 2
e AngularFire 2 em alguns minutos.
Então, conferiram isso.
O link está na descrição.
Boa pergunta.
Chad no Twitter perguntou:

Japanese: 
Twitter からチャドの質問です
「複数のユーザーデータを
Firebase と Angular 2 を使って
複数のユーザーデータを
保存したり検索する例を見るのが好きです
ありがとう #AskFirebase」
そんな...
ありがとうチャド
AngularFire 2 の
ダイナミッククエリをすると
本当に簡単です
AngularFire を使う時いつも
まず最初に行なうのは
AngularFire を
Component コンストラクタに
挿入することです
それが完了したら
FirebaseListObservable を
作成することができます
これはリアルタイムデータベースから
データリストを検索する方法です
そして それをするには
af.database.list と宣言します
この時点で データの場所を
提供して下さい
users のパスは
多分 ユーザー場所の下にあります
この出てきたリストは
データベースのユーザーリストです
新たにユーザーを追加したいなら
この出ているストリームに
push. を宣言します
すると項目が配列に追加されます
ですから
FirebaseListObservable を作る時

English: 
Chad on Twitter
asked-- I would loved
to see an example of saving
and retrieving multiple users'
data using Firebase
and Angular 2.
Thanks, #AskFirebase.
No.
Thank you, Chad.
So AngularFire 2's
dynamic querying
makes this really easy.
The first thing
that you always do
when you're using AngularFire is
that you inject the AngularFire
service into your
component's constructor.
And once you've done
that, you can do things
like create a Firebase
list observable.
And this is how you retrieve a
list of data from our real time
database.
And so to do that, we
can say af.database.list.
And at this point, we
need to provide where
the data is actually located.
And the path for our
users would probably
be underneath the
user's location.
And so this list observable is
a list of users in our database.
So if we want to be
able to add new users,
we can just say the
observable stream.push.
And it's just like adding
items onto an array.
So now when we create this
Firebase list observable,

Chinese: 
乍得在Twitter上问到
他会想看到使用
Firebase及Angular 2
以保存并检索
多个用户的数据的例子
谢谢，#AskFirebase
不是的
谢谢，乍得
AngularFire 2的动态查询
使这变得很容易
当使用AngularFire时
你要做的第一件事是
把AngularFire服务注入
组件的建构子
完成后，你可以做的事情包括
创建Firebase 监控属性列表
这样你就可以从我们的实时数据库
检索实时数据
要这样做，我们可以说
af.database.list
在这点上，我们需要提供
数据的实际位置
而我们用户的路径可能在
用户位置的下面
所以此监控属性就是
我们数据库中的用户列表
如果我们想能够添加新用户
我们可以说监控属性stream.push
就像添加内容到阵列上
现在当我们创建这个
Firebase串列监控属性

Portuguese: 
Eu adoraria ver um exemplo
de como salvar e recuperar dados
de múltiplos usuários
usando Firebase e Angular2.
Obrigado, #AskFirebase.
Não, obrigado a você, Chad.
Então, a consulta dinâmica
do AngulaFire2 facilita muito isso.
A primeira coisa que você faz
quando estiver usando AngularFire é
acionar o serviço AngularFire
no componente construtor.
Assim que tiver feito,
poderá fazer coisas
como criar uma lista
observável no Firebase.
É assim que se recupera uma lista de dados
no banco de dados em tempo real.
E para fazer isso, podemos dizer
af.database.list.
E aqui, precisaremos fornecer
onde os dados serão alocados.
O caminho provável 
para nosso usuários
será abaixo da localização do usuário.
Então, esta lista observável
é a lista de usuários no banco de dados.
Se quisermos poder adicionar 
novos usuários,
podemos dizer a observável 
stream.push
É como adicionar itens numa ordem.
Quando criamos esta lista
observável Firebase,

Indonesian: 
Chad di Twitter
bertanya-- saya ingin
lihat contoh merekam
dan memanggil data berbagai
pengguna dengan Firebase
dan Angular 2.
Terima kasih, #AskFirebase.
Tidak. Terima kasih, Chad.
Jadi, query dinamis
AngularFire 2
sangatlah mempermudah ini.
Pertama, yang selalu dilakukan
saat gunakan AngularFire
yakni Anda suntikkan layanan
AngularFire ke dalam
pembangun komponen Anda.
Dan begitu melakukannya,
Anda bisa lakukan hal,
seperti membuat daftar
Firebase yang bisa diamati.
Dan inilah cara Anda memanggil
daftar data dari real-time database
Untuk lakukan itu, bisa kita
sebutkan af.database.list.
Sampai di sini, kita perlu
beritahu di
mana data itu terdapat.
Jalur untuk pengguna kita mungkin
ada di bawah
lokasi pengguna.
Jadi, daftar yang bisa diamati ini ialah
daftar pengguna di database kita.
Jadi, bila kita ingin bisa
tambah pengguna baru,
tinggal kita sebutkan observable-
nya, stream.push.
Dan ini seperti menambahkan
item ke dalam suatu array.
Saat membuat daftar Firebase yang
dapat diamati ini,

Korean: 
트위터의 채드님이
Angular 2와 Firebase를
이용해서 여러 사용자를
저장하고 되찾는 일을 해보고 싶어요
미리 고맙다고 전합니다
아뇨,
저희가 고맙죠, 채드 님
AngularFire2
다이내믹쿼리를 쓰면
정말 쉬운데,
AngularFire를 쓰실 때
먼저 하셔야 하는 건
생성자의 컴포넌트에
AngularFire 서비스를
주입하는거죠
그러면 Firebase 관측 시스템이
만들 수 있습니다
그러면 실시간 데이터베이스에서 목록을
회수하죠
예를 들어 이렇게
af.database.list이 있으면
이 시점에 데이터가 어디에 위치했는지
지정해 줘야 합니다
아마 사용자 패스는
사용자 위치 하단에 있겠죠
이 관측 목록은 데이터베이스에 있는
사용자의 목록입니다
새로운 사용자를 더하고 싶다면
.push를 써주면 되죠
그러면 배열에 추가한 것과
마찬가지가 됩니다
Firebase 관측 목록이
생성됐으니

Arabic: 
تشاد على تويتر يسأل--
أود أن أرى
مثالاً لحفظ واسترجاع بيانات أكثر من مستخدم
باستخدام Firebase وAngular 2.
شكرا.
لا؛ شكرا لك أنت يا تشاد.
الاستعلام الديناميكي في AngularFire 2
يجعل هذا الأمر سهلاً للغاية.
الشيء الذي تفعله أولاً دائمًا
عندمنا تستخدم AngularFire 
هو أن تقوم بإدخال خدمة AngularFire
في دالة إنشاء Component.
وبمجرد إتمام ذلك يمكنك القيام بأشياء
مثل إنشاء قائمة Firebase قابلة للمراقبة.
وهكذا تسترجع قامة بيانات من قاعدة بياناتك
في الوقت الحقيقي.
وللقيام بذلك يمكننا كتابة
af.database.list.
وعند هذه النقطة نحتاج أن ندخل
مكان تواجد البيانات محليًا.
والمسار لـ"users" سيكون على الأرجح
أسفل موقع "users".
وإذن هذه القائمة القابلة للمراقبة
هي قائمة مستخدمين في قاعدة البيانات.
فإذا أردنا أن نتمكن من إضافة مستخدمين جدد
يمكننا كتابة "المسار القابل للمراقبة".push
والأمر أشبه بإضافة عناصر داخل صفيف.
عندما
ننشئ قائمة Firebase القابلة للمراقبة هذه

Spanish: 
"Me gustaría ver un ejemplo de guardar
y recuperar datos de múltiples usuarios
utilizando Firebase y Angular 2.
Gracias, #AskFirebase."
No.
Gracias a ti, Chad.
La consulta dinámica de AngularFire 2
lo hace muy sencillo.
Lo primero que haces siempre
que utilizas AngularFire
es inyectar el servicio de AngularFire
en el constructor del componente.
Y una vez que hayas hecho esto,
puedes hacer cosas
como crear un observable
de lista de Firebase.
Y así se recupera una lista de datos
de nuestra base de datos en tiempo real.
Y para hacerlo,
podemos decir af.database.list.
Y aquí tenemos que indicar
dónde se encuentran los datos.
Y la ruta de acceso
para nuestros usuarios
probablemente estaría debajo
de la ubicación del usuario.
Y este observable de lista es una lista
de usuarios en nuestra base de datos.
Si queremos poder añadir nuevos usuarios,
podemos decir
el stream.push observable.
Y es como agregar elementos a una matriz.
Ahora que creamos este
observable de lista de Firebase,

English: 
we are retrieving all of
the users in the database.
And if we want to just
get a subset of that back,
we can use the dynamic querying
capability of AngularFire 2.
The second parameter of the
Firebase list observable
allows us to specify our query.
So we provide an object, and
then we specify our query.
But let's say we only wanted
to get back the users who
are located in Washington DC.
Well we can say we want to
order by the child of location.
And we can make sure
that's equal to DC.
That's just an
equivalence query.
But we can even
do a range query.
So we can say that
we only want to order
by the age of our users.
And we can start
at the age of 18.
And we can end at 45.
So if you want to learn
more about AngularFire
2 and the Firebase
list observable,
make sure to check out the
docs, which are in GitHub.
And the link is in
the description.
Great question, Chad.
[MUSIC PLAYING]
[SLURP] This next
question is-- how can I
prevent the duplication
of user data
when a user signs up with
the same email address
more than once?
And that's a really
good question,
because you don't
want the same user

Korean: 
데이터베이스의
모든 사용자들을 회수하겠네요
만일 부분적으로만 회수하게 된다면
AngularFire 2의
다이내믹 쿼리를 사용하면 됩니다
Firebase 관측 목록의
두 번째 매개변수로
쿼리 속성을 정할 수 있습니다
오브젝트를 제공하고,
쿼리 속성을 정하는 거죠
예를 들어, 워싱턴에 있는 사용자만
다시 회수하고 싶다고 합시다
OrderByChild에
Location을 이렇게 넣으시고
DC에 맞춰 설정합니다
이건 그냥 등가 쿼리입니다
더 나아가서 범위 쿼리도 할 수 있죠
사용자 중에서 특정 연령층만
겨냥하고 싶다고 한다면
18세에서부터
45세까지 이렇게 설정 가능하죠
AngularFire 2와
Firebase
관측 목록에 대한 더 알고 싶다면
GitHub에 있는
문서들을 참고하세요
링크는 하단에 남기도록 할게요
질문 감사합니다
[테마 음악 재생]
다음 질문은,
어떻게 하면 사용자가 계정을 만들 때
같은 이메일 주소가
중복되지 않도록 하는지에 대해
문의를 주셨네요
이건 유용한 질문입니다
같은 사용자가 연속해서

Indonesian: 
kita tengah memanggil semua
pengguna dalam database.
Jika hanya mau mendapat kembali
subset dari itu
bisa kita pakai kemampuan
query dinamis AngularFire 2.
Parameter kedua daftar yang bisa
diamati Firebase
memungkinkan kita menentukan query kita.
Jadi, kita sediakan objek
dan kita tentukan query kita.
Katakanlah kita ingin kembali
ke pengguna yang
berada di Washington DC saja.
Ya, bisa kita katakan, kita ingin
mengurutkan sesuai anak lokasi.
Dan bisa kita pastikan
itu adalah DC.
Itu hanya sebuah
query persamaan.
Tapi, bahkan kita bisa
membuat query jangkauan.
Jadi, bisa kita katakan,
kita hanya mau mengurutkan
berdasarkan usia pengguna kita.
Dan kita bisa mulai
dari usia 18.
Dan kita bisa akhiri
sampai usia 45.
Bila ingin belajar
AngularFire 2 lebih lanjut
dan daftar yang bisa diamati Firebase,
pastikan menyaksikan
dokumen yang ada di GitHub.
Tautannya ada di deskripsi.
Pertanyaan hebat, Chad.
Pertanyaan berikut--
bagaimana saya bisa
mencegah duplikasi data pengguna
saat pengguna mendaftar
dengan alamat surel sama lebih
dari sekali?
Pertanyaan yang amat bagus
sebab Anda tak
mau pengguna

Portuguese: 
estamos recuperando todos usuários
no banco de dados.
Se quisermos recuperar
um subconjunto,
podemos usar a habilidade
da consulta dinâmica do AngularFire2.
O segundo parâmetro da lista
observável do Firebase
permite-nos a especificar nossa consulta.
Fornecemos um objeto
e, depois, especificamos a consulta.
Mas digamos que queremos
apenas os usuários
que estão na capital Washington.
Podemos dizer que queremos
ordená-los por localização.
Certificamo-nos que é igual à capital.
É só uma pesquisa
de equivalência.
Mas podemos fazer também
um intervalo de pesquisa.
Podemos dizer que queremos
apenas ordenar os usuários por idade.
E começamos com a idade de 18 anos.
Terminamos com 45 anos.
Se quiser aprender mais sobre AngularFire2
e a lista observável Firebase,
confira os documentos que estão
no GitHub.
O link está na descrição.
Bom ponto, Chad.
A próxima pergunta é:
Como eu posso impedir informação duplicada
de usuário quando ele se registra
usando o mesmo endereço de e-mail
mais de uma vez?
É mesmo uma boa pergunta,
pois ninguém quer

Chinese: 
我们要检索数据库中的所有用户
如果我们只想得到那个子集
我们可以使用AngularFire 2
的动态查询性能
Firebase 串列监控属性
的第二个参数
允许我们指定某查询
先提供一个对象
然后指定我们的查询
举例说，我们只想要
位于华盛顿特区的用户
我们可以使用
跟孩子位置而定的次序
而我们可以确定等于DC
这只是个等价查询
我们甚至可以根据范围做查询
我们可以要
以用户的年龄而定的次序
我们可以由18岁开始
直到45岁
如果你们想学习更多
有关AngularFire 2
及Firebase串列监控属性
确保查看GitHub上的文档
以及我们在描述中提供的链接
这是很棒的问题，乍得
[音乐]
下一个问题是
我们怎么能夠防止用户数据的重复
尤其是用户使用相同的
电子邮件地址重复注册?
这真是一个很好的问题
因为你们不想同一个用户

Spanish: 
estamos recuperando todos los usuarios
en la base de datos.
Y si solo queremos
conseguir un subconjunto,
podemos utilizar la función
de consulta dinámica de AngularFire 2.
El segundo parámetro del
observable de lista de Firebase
nos permite especificar nuestra consulta.
Proporcionamos un objeto
 y luego especificamos nuestra consulta.
Pero digamos que solo queremos recuperar
 los usuarios ubicados en Washington D.C.
Bueno, podemos decir que queremos
ordenarlo por el secundario de ubicación.
Y podemos asegurarnos de que es D. C.
Esa es una consulta de equivalencia.
Pero podemos incluso hacer
una consulta de rango.
Podemos decir que queremos ordenarlo
por la edad de nuestros usuarios.
Y podemos comenzar
desde los 18 años.
Y terminar en los 45 años.
Si quieres más información
sobre AngularFire 2
y el observable de lista de Firebase
asegúrate de echar un vistazo
a los documentos, que están en GitHub.
Y el enlace está en la descripción.
Buena pregunta, Chad.
La siguiente pregunta es:
"¿Cómo puedo evitar la duplicación
de datos de usuario cuando un usuario
se registra con la misma dirección
de correo electrónico más de una vez?"
Es una pregunta excelente,

Arabic: 
فإننا نسترجع كل المستخدمين
من قاعدة البيانات.
وإذا أردنا أن نسترجع جزءًا منها فقط
يمكننا استخدام إمكانية
الاستعلام الديناميكي في AngularFire 2.
المعامل الثاني
لقائمة Firebase القابلة للمراقبة
يتيح لنا تحديد الـquery.
فنقم بإدخال كائن ثم نحدد الـquery.
لكن لنقل أننا نريد فقط
أن نسترجع المستخدمين
الموجودين في واشنطن.
يمكننا كتابة 'orderByChild: 'location
ونتأكد من أنه 'equalTo:'DC
هذا مجرد استعلام تساوٍ.
لكن يمكننا حتى أن نقوم باستعلام نطاقي.
فيمكننا أن نخبره أن يرتبهم فقط
بحسب أعمار المستخدمين.
ونبدأ بعمر 18.
وننتهي بعمر 45.
ولو أردت تعلم المزيد عن Angular Fire 2
وقائمة Firebase القابلة للمراقبة
تأكد من تفقد الملفات الموجودة في GitHub.
والرابط بأسفل الفيديو.
سؤال عظيم يا تشاد.
السؤال التالي هو-- كيف يمكنني
أن أمنع تكرار بيانات المستخدم
عند قيام المستخدم بالتسجيل 
بواسطة نفس البريد الإلكتروني
أكثر من مرة؟
وهذا سؤال جيد فعلاً
لأنك لا تريد نفس المستخدم

Japanese: 
データベースの全ユーザーを
検索します
返ってきたサブセットを
取得したいなら
AngularFire 2 の
動的クエリ機能が使えます
FirebaseListObservable の
２つ目のパラメータは
クエリを特定してくれます
ですからオブジェクトを入れて
クエリを特定するのです
じゃあワシントン DC に居る
ユーザーだけを取り戻したいとして
location の orderByChild が
欲しいと宣言して
equalTo: DC とします
これはただの等価クエリです
レンジクエリをすることもできます
ある年齢層のユーザーだけが欲しいとして
startAt で 18 歳から
endAt で45 歳までと出来ます
AngularFire 2 と
FirebaseListObservable について
もっと学びたい方は
GitHub にあるドキュメントを
確認して下さい
リンクは説明文にあります
チャド
素晴らしい質問だったよ
次の質問
「ユーザーが同メールアドレスで
２回以上サインインした時に
ユーザーデータが二重になるのを
防ぐ方法は？」
良い質問だ

Arabic: 
أن يسجل مرارًا وتكرارًا.
فذلك يجعل نظامك مرتبكًا للغاية.
كيفية حل ذلك هو عن طريق
جعل بريد المستخدم الإلكتروني معطًى متحكمًا
ثم التأكد من أن المستخدم لا يمكنه
التسجيل في نفس البقعة أكثر من مرة
بواسطة قوانين الحماية.
لو ألقيت نظرة على قوانين الحماية هنا
يمكنك أن ترى أنني أسجل الـ"مستخدمين"
تحت عقدة "مستخدمين".
ثم أستخدم أمر "$email" السحري
لكي يدل على أنني
أجعل البريد معطىً متحكمًا.
ثم أخبره أن فقط الأشخاص الذين
يمكنهم الكتابة في هذا الموقع
هم المستخدمون الموثقون.
والأمر الحاسم هنا هو أنه لا بيانات
تتواجد في هذا المسار.
لذا إذا كان المستخدم
قد سجل بنفس البريد الإلكتروني
ستتواجد بيانات
وهذا القانون لن يسمح لهم بالتسجيل.
إذا أردت التأكد
من أنك لا تكرر بيانات المستخدم
تأكد من أنك تجعل المعطى المتحكم
شيئًا مميزًا
وأن تكتب أن قانون الحماية
لا يسمح لنفس البيانات
بأن تُكتب مرتين.
ولو أردت تعلم المزيد عن ذلك
لدينا قسم توثيق كامل
عن حماية بيانات المستخدم
باستخدام قوانين الحماية.
أنصحك بتفقده
من خلال الرابط الموجود بأسفل الفيديو.
سؤال عظيم.

Japanese: 
同ユーザーにサインアップを
繰り返して欲しくないですものね
システムが超煩雑になってしまいます
その解決方法は
ユーザーのメールアドレスをキーオフして
ユーザーが同じ場所に
２回以上保存できないように
セキュリティールールを
確認しておくことです
こちらの短いセキュリティールールを
見て下さい
ここでは users を
ユーザーノードの下に保存していますね
そして $email のワイルドカードを使って
メールをキーオフしたことを意味します
そして この場所に書ける人だけが
認証されたユーザーだと宣言します
ここのキッカーはデータが
このパスに存在しないということです
だからユーザーが既に
同じメールでサインアップしていたら
データは存在しているので
ルールがサインアップを許可しません
もしユーザーデータが
二重じゃないことを確認したいなら
何か独特なものと一緒に
キーオフを確認して下さい
そして「同じデータを２回記入すると
セキュリティールールが許可しない」
と書いておきます
これについてもっと知りたい方は
セキュリティールールを使って
ユーザーデータを守ることの
全体ドキュメントがありますので
下の説明文のリンクから確認して下さい
良い質問でしたよ

Portuguese: 
o mesmo usuário entrando inúmeras vezes.
Isso deixaria seu sistema
muito confuso.
Você resolve isso ao desabilitar
o endereço de e-mail do usuário
e certificando-se
que o usuário não pode
salvar mais do que uma vez
com regras de segurança.
Se você der uma olhada
nas regras de segurança bem aqui
podem ver que salvei
meu usuários em uma regra.
Estou usando o curinga
"$email" para dizer que
estou desabilitando o e-mail.
E estou dizendo que só pessoas
que se direcionam a este local, 
são usuários autenticados.
E o melhor aqui é que nenhum dado
existe aqui.
Então, se um usuário já tiver logado
com o mesmo e-mail,
o dado vai existir e esta regra 
não permitirá que ele se registre.
Se quiser ter certeza 
que não está duplicando usuários,
certifique-se de que desabilitou
algo específico
e que está escrevendo
que sua regra de segurança
não permite a mesma informação
seja duplicada.
E se quiser saber mais
sobre isso,
temos um seção de documentos
sobre segurança de dados
usando regras de segurança.
Você precisa dar uma olhada
no link da descrição abaixo.
Ótima pergunta.

English: 
signing up over and over again.
That would make your
system super confusing.
How you solve that is by keying
off of the user's email address
and then making sure
that the user can't
save to the same spot more
than once with security rules.
So if you take a look at this
little bit of security rules
right here, you can see
that I save my users
underneath a user's node.
And then I'm using the "$email"
wild card to signify that
I'm keying off of the email.
And then I'm saying
only the people who
can write to this location
are authenticated users.
And the kicker right
here is that no data
exists at this path.
So if a user has already
signed up with the same email,
data will exist and this rule
won't allow them to sign up.
If you want to make sure that
you aren't duplicating user
data, make sure that
you're keying off
with something
unique, and you're
writing that your security rule
isn't allowing the same data
to be written twice.
And if you want to
know more about that,
we have an entire
documentation section
on securing user data
using security rules.
You should check that out with
the link in the description
below.
Great question.
[MUSIC PLAYING]

Chinese: 
重复注册
这样将使你们的系统超混乱
你们的解决方法是
通过切断用户的电子邮件地址
以确保用户不能够
因安全规则多次保存到同一地方
如果你们细看这些安全规则
你们可以看到我把用户
保存在用户节点下面
然后我使用万用字元"$email"
来表示我要切断这个电子邮件地址
然后我说只有能夠
写到此位置的人们
才是经过身份验证的用户
这里爱唱反调的人
在这路径并没有数据
如果用户已经使用
相同的电子邮件地址注册
而数据已经存在
这规则不会允许重复注册
如果你们想确保
用户数据没有重复
确保你们切断
一些独特的东西
你们的安全规则
不允许相同的数据
重复写入两次
如果你们想了解更多
我们有很多文档
说明怎样使用安全规则
以保护用户数据
你们应该看看
在描述中的链接
这是很棒的问题
[音乐]

Korean: 
등록한다면
시스템에 혼선이 생길 수 있으니까요
이건 보안 규칙을 짜서,
사용자가 한 번 도달한 스팟을
저장하지 못하게 지정하고
해당 이메일 주소를
키잉-오프 시켜버리시면 됩니다
여기 보안 규칙들을 조금 살펴보시면
저희 경우는 사용자들을,
사용자 노드 밑에
저장하는 게 보이시죠?
그리고 $email 와일드카드를 써서
해당 이메일을
키잉-오프 시키고 있습니다
작성 권한이 있는 것은
인증된 사용자 뿐이라고 해놨어요
이 부분의 특징은,
여기 패스에 아무런 데이터가
없다는 것이죠
사용자가 같은 이메일로 등록했다면
데이터가 생성돼서
이 규칙에 따라 중복된 데이터가
생성되지 못하도록
키잉-오프 됩니다
그리고 보안 규칙 단에서
같은 데이터가 중복되지 못하도록
방지 시킵니다
이 부분을 더 자세히 알고 싶다면
보안 규칙을 활용해서 보안 설정하는
관련 상세 문서 섹션이 있어요
하단 링크를 확인해주세요
좋은 질문이었어요
[테마 음악 재생]

Spanish: 
no queremos que el mismo usuario
se registre una y otra vez.
El sistema sería superconfuso.
La solución es desconectar la dirección
de correo electrónico del usuario
y luego asegurar que el usuario
no puede guardar
en el mismo lugar más de una vez,
con reglas de seguridad.
Si echas un vistazo a estas reglas
de seguridad justo aquí,
puedes ver que guardo mis usuarios
bajo un nodo de usuarios.
Y luego utilizo el comodín "$email"
para indicar
que estoy desconectando
el correo electrónico.
Y entonces digo
que solo las personas
que pueden escribir a este lugar
son usuarios autenticados.
Y aquí lo sorprendente
es que no hay datos en esta ruta.
Si un usuario ya se registró
con el mismo correo electrónico,
tendremos sus datos y esta regla
impedirá que se registren.
Si quieres asegurarte
de no duplicar datos de usuarios
asegúrate de desconectar
con algo único,
y de escribir que tu regla de seguridad
no permite que los mismos datos
se escriban dos veces.
Y si quieres más información,
tenemos toda una sección
de documentación
sobre protección de datos de usuario
mediante reglas de seguridad.
Deberías echar un vistazo
al enlace en la descripción de abajo.
Buena pregunta.

Indonesian: 
yang sama mendaftar lagi.
Itu akan sangat
membingungkan sistem Anda.
Cara mengatasi ini yaitu
mengunci alamat surel pengguna
dan pastikan bahwa
pengguna tak bisa
menyimpan di tempat yang sama
lebih dari sekali dengan pengamanan.
Bila Anda perhatikan sebentar
peraturan keamanan
di sini, bisa Anda lihat,
saya rekam pengguna
di bawah jaringan pengguna.
Lalu saya tengah gunakan kartu
"$email" untuk menandakan bahwa
saya mengunci surelnya.
Lalu saya katakan,
hanya orang yang
bisa menulis ke lokasi ini
hanyalah pengguna terkonfirmasi.
Dan pamungkasnya
adalah tiada data
yang terdapat di jalur ini.
Jadi, bila pengguna sudah
daftar dengan surel yang sama,
data akan muncul dan aturan ini
tak akan izinkan mereka mendaftar.
Jika Anda ingin pastikan,
Anda tak menduplikasi data
pengguna, pastikan
bahwa Anda kunci
dengan sesuatu yang unik dan
Anda menuliskan, pengamanan
Anda tak mengizinkan data sama
ditulis dua kali.
Dan bila Anda mau
tahu lebih lanjut,
kami punya bagian
dokumentasi lengkap
tentang mengamankan data
pengguna dengan pengamanan.
Anda harus lihat lewat tautan di
bagian deskripsi di bawah.
Pertanyaan hebat.

Arabic: 
آه!
السؤال التالي!
ما الفرق بين وسائل مصادقة Firebase؛
createUserWithEmailAndPassword
وsignInUserWithEmailAndPassword؟
حسنًا، بالرغم من أن هاتين الوسيلتين
يبدوان مختلفتين
هناك تشابه بسيط بينهما.
فـsignInUserWithEmailAndPassword
تقوم بما تعتقد أنها تقوم به.
أنت تقوم بإدخال مستخدم بما أنه سيعيطك
بريدا إلكترونيا وكلمة سر.
لكن createUserWithEmailAndPassword
ستقوم بإنشاء مستخدم
عندما يعطيك بريدًا إلكترونيًا
وكلمة سر، لكنها ستقوم بإدخاله كذلك.
فمن المهم أن تعلم ذلك حين
تستخدم هذه الوسيلة،
لأنه يجب أن تعلم
أنها ستقوم بإدخال المستخدم تلقائيًا
بعدما تنشئه.
ولو أردت تعلم المزيد عن هذا
فقد صورت فيديو كامل عن مصادقة
البريد الإلكتروني وكلمة السر
في Firebase.
ويمكنك تفقده في الرابط بأسفل الفيديو.
سؤال عظيم.
آه! السؤال التالي!
- لا مزيد من الأسئلة يا دايف.
- هل لدينا المزيد من القهوة؟
- لقد شربتها كلها.
- لا!

Spanish: 
¡Aah!
¡Siguiente pregunta!
"¿Qué diferencia hay entre los métodos
de autenticación de Firebase,
createUserWithEmailAndPassword
y signInUserWithEmailAndPassword()?"
Bueno, aunque estos métodos
pueden parecer diferentes,
hay cierta similitud entre los dos.
signInUserWithEmailAndPassword()
básicamente hace lo que crees.
El usuario inicia sesión al proporcionar
un correo electrónico y una contraseña.
Pero createUserWithEmailAndPassword(),
creará un usuario cuando este
proporcione un correo electrónico
y una contraseña,
pero también iniciará sesión.
Es realmente importante saber esto
cuando utilizas ese método,
porque debes saber que va a iniciar
automáticamente la sesión del usuario
después de haberlo crearlo.
Y si quieres más información sobre eso,
hice un video sobre autenticación
por correo electrónico y contraseña
con Firebase.
Y puedes verlo en el enlace
en la descripción de abajo.
Buena pregunta.
¡Ah! ¡Siguiente pregunta!
No hay más preguntas, Dave.
¿Nos queda café?
Te lo bebiste todo.
¡Nooo!

Japanese: 
次の質問です！
「Firebase の authentication メソッドの
createUserWithEmailAndPassword と
signInUserWithEmailAndPassword() の
違いは何ですか？」
これらのメソッドは違って見えますが
２つの間の類似点は少ないです
signInUserWithEmailAndPassword() は
思ったよりも多くのことをします
あなたはメールとパスワードを
提出したユーザーをサインインします
createUserWithEmailAndPassword() は
メールとパスワードを出した時に
ユーザーを作成しますが
サインインも行います
だから このメソッドを使っている時間を
知るのが重要です
ユーザーを作った後に
自動的にサインインもしていることを
知っておかなければなりません
それについて もっと知りたい方は
Firebase でのメールとパスワードの
自動化についての動画を作っていますので
下の説明文のリンクを確認して下さい
良い質問でした
次の質問です！
もう質問は無いよ
デイブ
もうコーヒーは無いの？
それで全部だよ
そんなー！

Portuguese: 
Próxima pergunta!
Qual é a diferença entre
os métodos de autenticação Firebase
createUserWithEmailAndPassword
e signInUserWithEmailAndPassword()?
Estes métodos podem parecer diferentes,
mas há uma certa semelhança entre eles.
O signInUserWithEmailAndPassword()
faz o que o nome já diz.
Você loga um usuário
que forneceu um e-mail e uma senha.
Mas o createUserWithEmailAndPassword()
vai criar um usuário
quando for fornecido e-mail
e senha e também vai logá-lo.
É muito importante saber disso quando
você estiver usando este método,
pois você precisa saber
que irá logar automaticamente o usuário
depois de criá-lo.
E se você quiser saber mais sobre isso,
fiz um vídeo sobre autenticação 
de e-mail e senha com Firebase.
E você pode ver o link
que está na descrição abaixo.
Ótima pergunta.
Próxima pergunta!
Não há mais perguntas, Dave.
Tem mais café?
Você tomou tudo.
Não!

Chinese: 
啊
下一个问题
Firebase身份验证方法
createUserWithEmailAndPassword与
signInUserWithEmailAndPassword()
有什么区别?
嗯，虽然这些方法看起来不同
但两者之间有一点相似
signInUserWithEmailAndPassword()
所做的事几乎就是
你认为它要做的事
假如他们给你
电子邮件和密码
就可以用户登录
但现在createUserWithEmailAndPassword()
当他们给你电子邮件和密码
它就会创建一个用户
亦会让他们登录
知道什么时候使用这个方法
真的很重要
因为你必须知道用户可自动登录
只要你创建它们后
如果你想了解更多信息
就有关使用Firebase
进行电子邮件和密码认证
我做了一个完整的视频
你可到下面
描述中的链接看看
这是很棒的问题
[音乐]
啊! 下一个问题!
再没有问题了，戴夫
大卫衣斯特:
还有没更多的咖啡吗?
给你喝光了
大卫衣斯特: 不是的

Korean: 
아!
다음 질문!
Firebase 인증 메소드 중
이것과
이것의 차이점은 뭔가요?
다른 메소드 같이 보이지만
서로 간에 공유된 특징이 있는데,
SignInUserWithEmail
AndPassword()의 경우
쓰여진 것과 같은 일을 합니다
사용자는 등록하면서 이메일과
비번을 제공하게 되죠
하지만 두 번째는
이메일과 비번을 줄 때, 사용자 생성과
로그인도 동시을 시킵니다
이 메소드를 사용할 때
사용자 생성 후에 로그인까지
자동으로 시킨다는 것을
알아두셔야 합니다
더 알고 싶으시다면
Firebase에서 이메일과
비번 인증에 대한 에피소드를
전에 했으니
하단 링크를 방문해서
보세요
질문 좋았어요
[테마 음악 재생]
아! 다음 질문!
데이브, 그게 끝이에요
커피는 더 없나요?
다 마셨어요
안돼!

English: 
Ah!
Next question!
What's the difference between
the Firebase authentication
methods,
createUserWithEmailAndPassword,
and signInUserWithEm
ailAndPassword()?
Well, while these methods
might seem different,
there is a little similarity
between the two of them.
So
signInUserWithEmailAndPassword()
pretty much does what
you think it does.
You sign-in a user
provided that they give you
an email and a password.
But now createUserWithEm
ailAndPassword(),
it will create a user when
they give you an email
and a password, but it
will also sign them in.
So it's really important
to know that when
you are using that
method, because you
have to know that it's going to
automatically sign in the user
after you've created them.
And if you want to
learn more about this,
I did an entire video on email
and password authentication
with Firebase.
And you can check that out with
the link in the description
below.
Great question.
[MUSIC PLAYING]
Ah! [CLAP] Next question!
SPEAKER: No more
questions, Dave.
DAVID EAST: Do we
have any more coffee?
SPEAKER: You drank it all.
DAVID EAST: No!

Indonesian: 
Pertanyaan berikutnya!
Apa perbedaan metode
FirebaseAuth, antara
createUserWithEmailAndPassword dengan
signInUserWithEmailAndPassword()?
Ya, walaupun metode itu
tampak agak berbeda,
ada kesamaan kecil
antara keduanya.
Jadi,
signInUserWithEmailAndPassword()
bekerja sebagaimana yang Anda kira.
Anda memasukkan pengguna
asalkan mereka memberitahu
surel dan kata kunci.
Tapi, createUserWithEmailAndPassword()
akan ciptakan pengguna
saat mereka beritahu surel
dan kata kunci, tapi juga
akan memasukkan mereka.
Jadi, sangat penting
mengetahui kapan
Anda menggunakan
metode itu karena Anda
Anda harus tahu, itu akan
otomatis memasukkan pengguna
setelah menciptakannya.
Dan bila Anda ingin
belajar lebih banyak,
saya membuat video lengkap tentang
autentikasi surel dan kata kunci
dari Firebase.
Anda bisa saksikan dari tautan di
deskripsi di bawah.
Pertanyaan hebat.
Pertanyaan berikutnya!
Sudah habis, Dave.
Kita masih punya kopi?
Kau minum semuanya.
Tidak!

Arabic: 
إذن كان هذا كل ما لدينا من القهوة
والأسئلة لهذا اليوم.
أشكركم جزيلاً لإرسالهم إلينا.
وإذا أردت أن ترى إجابة سؤالك
احرص على ان ترسل لنا على تويتر
ويوتيوب وستاك أوفرفلو
وساتخدم هاشتاج #AskFirebase
وسنقوم
بالإجابة عليهم.
لو استمتعت بهذا الفيديو
اضغط "إعجاب" و"اشتراك"
حتى تكون على علم بآخر وأعظم
محتوى Firebase.
هذا كل ما لدينا لليوم.
سأذهب للبحث عن مزيد من القهوة.

Portuguese: 
Então terminamos com o café
e com as perguntas por hoje.
Muito obrigado a todos
por fazer as perguntas.
Se quiser fazer uma pergunta,
mande um tweet, acesse o YouTube,
Stack Overflow
e use #AskFirebase
que iremos respondê-las.
Se gostou deste vídeo,
curta e inscreva-se
para continuar atualizado
com os melhores e mais recentes
conteúdos do Firebase.
Por hoje é só.
Vou procurar por um pouco mais de café.

Chinese: 
今天的咖啡及问题已完成了
谢谢你们的问题
如果你们想看问题的答案
确保到推特，YouTube
Stack Overflow看看
并记得使用#AskFirebase
我们会继续回答问题
如果你们喜欢这个视频
确保继续关注和订阅
以获得最新和最棒的
Firebase 内容
今天就到此为止
我要去寻找更多的咖啡
[音乐]

Korean: 
오늘의 질문과 커피는 여기까지군요
질문 보내주셔서 감사합니다
답변 받고 싶으신 질문이 있다면
각종 SNS에
해시태그
#AskFirebase로 문의하세요
답변은 계속됩니다
영상을 재밌게 보셨다면,
잊지 말고 구독하셔서
꾸준히 업데이트되는
Firebase 콘텐츠를
받아보세요
오늘은 여기까지!
저는 커피를 더 마시러 가야겠어요

Japanese: 
本日のコーヒーと質問は
これで全てです
質問をくれた皆さんありがとう
答えて欲しい質問があったら
ツイートしたり YouTube や
Stack Overflow に言って下さい
#AskFirebase を使うだけです
こちらで答えていきますよ
この動画が気に入ったら
「高評価」とチャンネル登録をお忘れなく
最新で最高の Firebase コンテンツを
随時お知らせします
本日はここまで
僕はもっとコーヒーを探しにいくよ

Indonesian: 
Jadi, cukuplah kopi
dan pertanyaan hari ini.
Terima kasih banyak
telah mengirimkannya.
Dan bila ingin pertanyaan
Anda dijawab,
pastikan mengetwit kami,
buka YouTube, Stack Overflow,
dan pakai saja #AskFirebase,
maka kami akan
terus menjawabnya.
Jika Anda menikmati video ini,
pastikan suka dan
berlangganan agar Anda terus aktual
dengan konten Firebase
teranyar dan terbaik.
Cukup untuk hari ini.
Saya akan mencari
kopi lagi.

Spanish: 
Se terminaron el café
y las preguntas por hoy.
Muchas gracias a todos
por enviarlas.
Y si quieres que respondamos
a tus preguntas,
envíanos un tweet,
o ve a YouTube, Stack Overflow,
y utiliza la etiqueta
#AskFirebase,
y seguiremos respondiendo a ellas.
Si te ha gustado este video,
dale a Me gusta y suscríbete
para mantenerte al día
con los más recientes e increíbles
contenidos de Firebase.
Eso es todo por hoy.
Voy a buscar más café.
Otros videos de Firebase

English: 
So that's all of the coffee
and questions for the day.
Thank you all so much
for sending them in.
And if you want to see
your question answered,
make sure to tweet at us, go
on to YouTube, Stack Overflow,
and just use the
#AskFirebase, and we'll
keep on answering them.
If you enjoyed this video,
make sure to like and subscribe
so you can stay up to date with
all the latest and greatest
Firebase content.
That's all for today.
I'm going to go look
for some more coffee.
[MUSIC PLAYING]
