2017-09-12 7 views
0

외부 서비스의 사용자 프로필 사진을 내 firebase 서버에 복사하려고합니다. 지금까지 내가 가진 : Unsupported operation: Cannot extract a file path from a https URIFlutter : url에서 firebase로 이미지 파일 복사

이 작업을 수행하는 올바른 방법은 무엇입니까 :

final File file = await new File.fromUri(Uri.parse(auth.currentUser.photoUrl)).create(); 
final StorageReference ref = FirebaseStorage.instance.ref().child("profile_image_${auth.currentUser.uid}.jpg"); 
final StorageUploadTask uploadTask = ref.put(file); 
final Uri downloadUrl = (await uploadTask.future).downloadUrl; 

// add user profile picture url to user object 
final userReference = FirebaseDatabase.instance 
    .reference() 
    .child('users/' + auth.currentUser.uid); 
userReference.set({'photoUrl': downloadUrl}); 

맨 라인은 나에게 오류를 제공? 이것도 클라이언트 측에서 수행해야합니까? (이 URL을 firebase에 전달하고 서버 측 다운로드 기능을 사용해야합니까?)

답변

1

File은 파일 시스템의 파일 만 지원합니다. HTTP를 사용하여 콘텐츠를로드하려면 http 패키지를 사용하십시오. 또한 바이너리 (Uint8List)

참조 https://www.dartdocs.org/documentation/http/0.11.3+14/http/Client-class.html

로 얻을 수 response.body, 또는
var response = await httpClient.readBytes(url); 

에서 데이터를 얻을 또한 다음 https://flutter.io/networking/

var httpClient = createHttpClient(); 
var response = await httpClient.get(url); 

및 참조