/ / Klon Real Slime klonujący z AngularFire - angularjs, uwierzytelnianie, firebase, baza danych firebase, luzy

Klon w czasie rzeczywistym z AngularFire - angularjs, uwierzytelnianie, firebase, baza danych Firebase, luzy

Próbowałem wykonać ten samouczek https://thinkster.io/angularfire-slack-tutorial#authenticating-users-using-angularfire

Mam problem z uwierzytelnianiem Firebase. W kodzie nie ma błędów, ale nie chce się łączyć z bazą, a błąd to:

Projects created at console.firebase.google.com must use the new Firebase Authentication SDKs available from firebase.google.com/docs/auth/

Nie wiem, co robić, jeśli ktoś bawi się z tym i zna odpowiedź, proszę, powiedz mi, to przeszkadza mi przez ostatnie 3 dni.

Odpowiedzi:

0 dla odpowiedzi № 1

Samouczek, który obserwujesz, został napisany dla Firebase 2.x. Projekty utworzone na firebase.google.com mogą korzystać tylko z uwierzytelniania Firebase 3.x.

Musisz albo znaleźć zaktualizowany samouczek (np. ten kodek firebase) lub utwórz projekt na stronie Stara konsola Firebase. Ta ostatnia opcja jest dostępna tylko wtedy, gdy utworzyłeś swoje konto na tej starszej konsoli.


0 dla odpowiedzi nr 2

Czy rozwiązałeś ten problem?

To nie jest zbyt skomplikowane, teraz używam przykładu Thinkster w Firebase 3.x.

Skopiuj kod konfiguracji aplikacji internetowej z konsoli Firebase gdzieś w kodzie (umieszczam go na początku pliku app.js):

var config = {
apiKey: "xxxxxx",
authDomain: "projectid.firebaseapp.com",
databaseURL: "https://projectid.firebaseio.com",
storageBucket: "projectid.appspot.com",
};
firebase.initializeApp(config);
var FirebaseUrl = firebase.database().ref();

Zmień wszystkie zmienne ref w tym formacie:

var channelMessagesRef = FirebaseUrl.child("channelMessages");

Zastąp funkcje auth zgodnie z:

https://github.com/firebase/angularfire/blob/master/docs/migration/1XX-to-2XX.md

(również część "key ()" należy zastąpić przez "klucz")

Myślę, że to wszystko. Jeśli napotkasz problemy, daj mi znać.

Również inna uwaga:

Plik reguł jest nieprawidłowy, daje dostęp do odczytu do prywatnych wiadomości wszystkim. Zmieniłem go na ten:

"userMessages":{
"$uid1":{
".read": "$uid1 === auth.uid",
"$uid2":{
".read": "$uid2 === auth.uid",
"$messageId":{
".read": "auth !== null && ($uid1 === auth.uid || $uid2 === auth.uid)",
".write": "auth !== null && newData.child("uid").val() === auth.uid",
".validate": "$uid1 < $uid2 && newData.child("timestamp").exists()",
"body":{
".validate": "newData.exists() && newData.val().length > 0"
}
}
}
}
}