2016-07-06 18 views
5

Tôi có thể thêm người dùng trong bảng điều khiển Firebase -> Auth nhưng tôi không thể làm gì khác ngoài việc đặt email và mật khẩu cho họ.Firebase - no displayName cho người dùng

Tôi có thể đặt một số cách cho họ displayName không?

Trả lời

9

Tôi đoán nếu bạn chỉ muốn cập nhật hồ sơ người dùng:

firebase.auth().onAuthStateChanged(function(user) { 
    if (user) { 
    // User is signed in. 
    user.updateProfile({ 
     displayName: "Random Name" 
    }).then(function() { 
     // Update successful. 
    }, function(error) { 
     // An error happened. 
    }); 

    } else { 
    // No user is signed in. 
    } 
}); 

Ngoài ra: https://firebase.google.com/docs/auth/web/manage-users

+0

Vâng, tôi biết các trường nào authData có nhưng tôi cũng biết rằng authData có một trường có tên là "displayName" mà là null cho kiểu xác thực đó. Ví dụ: khi tôi sử dụng xác thực của Google, tôi có trong displayName phản hồi làm tên và họ Google của tôi. Vì vậy, câu hỏi của tôi là, tôi có thể đặt các thuộc tính như vậy cho người dùng mà tôi tạo theo cách thủ công trong bảng điều khiển firebase hay không. Cảm ơn bạn. – elzoy

+3

Không có cách nào để đặt tên hiển thị trong bảng điều khiển (yêu cầu tính năng tốt). Cho đến khi điều đó tồn tại, gọi API là cách để đi. –

+2

Tôi tìm thấy trang này bằng cách googling "hồ sơ người dùng chỉnh sửa bảng điều khiển firebase" vì tôi cũng muốn đặt 'displayName' của người dùng thông qua bảng điều khiển và rất ngạc nhiên khi thấy rằng tôi không thể. Chắc chắn một tính năng sẽ được thêm vào. – odigity

4

tôi có giải pháp cho vấn đề của bạn. Vì vậy, đây là:

Khi bạn tạo người dùng bạn chỉ tạo bằng email và mật khẩu nhưng bạn có thể và displayName trong lời hứa, sau đó bên trong phương thức .then() bạn gọi phương thức updateProfile và bạn đã sẵn sàng, phải xuống là mã:

onSubmit(formData) { 
    if(formData.valid) { 
     console.log(formData.value); 
     this.af.auth.createUserWithEmailAndPassword(
     formData.value.email, 
     formData.value.password 
    ).then(
     (success) => { 
     console.log(success); 
     success.updateProfile({ 
      displayName: "Example User", 
      photoURL: "https://example.com/jane-q-user/profile.jpg" 
     }).catch(
     (err) => { 
     this.error = err; 
     });   
     this.router.navigate(['/login']) 
     }).catch(
     (err) => { 
     this.error = err; 
     }) 
    } 
    } 

Lưu ý rằng trong ví dụ của tôi displayName được thiết lập để "Ví dụ tài khoản", trong ứng dụng thực sự bạn chỉ cần thêm các thông số như trong trường hợp của tôi nó phải -> displayName: formData. value.name

Cảm ơn

Các vấn đề liên quan