如何在应用栏中获取当前用户的个人资料图片

时间:2020-10-26 15:50:49

标签: firebase flutter

如何从Firebase获取当前(已登录)用户的个人资料图像?我想在应用栏图标中显示' Rounds Value by 4/5 with count of decimals as specified with parameter NumDigitsAfterDecimal. ' ' Rounds to integer if NumDigitsAfterDecimal is zero. ' ' Rounds correctly Value until max/min value limited by a Scaling of 10 ' raised to the power of (the number of decimals). ' ' Uses CDec() to prevent bit errors of reals. ' ' Execution time is about 1µs. ' ' 2018-02-09. Gustav Brock, Cactus Data ApS, CPH. ' Public Function RoundMid( _ ByVal Value As Variant, _ Optional ByVal NumDigitsAfterDecimal As Long, _ Optional ByVal MidwayRoundingToEven As Boolean) _ As Variant Dim Scaling As Variant Dim Half As Variant Dim ScaledValue As Variant Dim ReturnValue As Variant ' Only round if Value is numeric and ReturnValue can be different from zero. If Not IsNumeric(Value) Then ' Nothing to do. ReturnValue = Null ElseIf Value = 0 Then ' Nothing to round. ' Return Value as is. ReturnValue = Value Else Scaling = CDec(Base10 ^ NumDigitsAfterDecimal) If Scaling = 0 Then ' A very large value for NumDigitsAfterDecimal has minimized scaling. ' Return Value as is. ReturnValue = Value ElseIf MidwayRoundingToEven Then ' Banker's rounding. If Scaling = 1 Then ReturnValue = Round(Value) Else ' First try with conversion to Decimal to avoid bit errors for some reals like 32.675. ' Very large values for NumDigitsAfterDecimal can cause an out-of-range error when dividing. On Error Resume Next ScaledValue = Round(CDec(Value) * Scaling) ReturnValue = ScaledValue / Scaling If Err.Number <> 0 Then ' Decimal overflow. ' Round Value without conversion to Decimal. ReturnValue = Round(Value * Scaling) / Scaling End If End If Else ' Standard 4/5 rounding. ' Very large values for NumDigitsAfterDecimal can cause an out-of-range error when dividing. On Error Resume Next Half = CDec(0.5) If Value > 0 Then ScaledValue = Int(CDec(Value) * Scaling + Half) Else ScaledValue = -Int(-CDec(Value) * Scaling + Half) End If ReturnValue = ScaledValue / Scaling If Err.Number <> 0 Then ' Decimal overflow. ' Round Value without conversion to Decimal. Half = CDbl(0.5) If Value > 0 Then ScaledValue = Int(Value * Scaling + Half) Else ScaledValue = -Int(-Value * Scaling + Half) End If ReturnValue = ScaledValue / Scaling End If End If If Err.Number <> 0 Then ' Rounding failed because values are near one of the boundaries of type Double. ' Return value as is. ReturnValue = Value End If End If RoundMid = ReturnValue End Function 时,如何在构建streamBuilder之前访问以下值?

这是我的代码:

profilepic

1 个答案:

答案 0 :(得分:0)

从Firebase获取profilePic之后,可以使用setState()并像这样使用它:

   String profilePic;  

   AppBar _buildAppBar(BuildContext context) {
     return AppBar(
       title: profilePic != null ?
          Image.network(
             profilePic,
          ) :
          Text("Profile pic not found"),
       centerTitle: true,
       actions: <Widget>[
         // some actions.
       ],
     );
   }