小编Val*_*tin的帖子

从使用Cloud Functions for Firebase上传的文件中获取下载URL

在Firebase存储中使用函数for Firebase上传文件后,我想获取该文件的下载URL.

我有这个 :

...

return bucket
    .upload(fromFilePath, {destination: toFilePath})
    .then((err, file) => {

        // Get the download url of file

    });
Run Code Online (Sandbox Code Playgroud)

目标文件有很多参数.甚至一个名字mediaLink.但是,如果我尝试访问此链接,我会收到此错误:

匿名用户没有storage.objects.get访问对象...

有人可以告诉我如何获取公共下载Url?

谢谢

node.js firebase google-cloud-functions firebase-storage

86
推荐指数
14
解决办法
4万
查看次数

getString()和getResources.getString()之间的区别

我注意到Activity该类有两种不同的方法来获取String资源.这可以通过使用:

  • getString(int resId):从应用程序包的默认字符串表中返回本地化字符串.

  • getResources().getString(int id):返回与特定资源ID关联的字符串值.它将被删除任何样式的文本信息.

我不明白两种方法之间的区别.有人能告诉我吗?

string resources android

56
推荐指数
1
解决办法
1万
查看次数

使用Kotlin的Firebase Firestore toObject()

我尝试在Kotlin项目中使用Firebase Firestore.一切都很顺利,除非我想用DocumentSnapshot.toObject(Class valueType)实例化一个对象.

这是代码:

FirebaseFirestore
    .getInstance()
    .collection("myObjects")
    .addSnapshotListener(this,
    { querySnapshot: QuerySnapshot?, e: FirebaseFirestoreException? ->

        for (document in querySnapshot.documents) {

            val myObject = document.toObject(MyObject::class.java)

            Log.e(TAG,document.data.get("foo")) // Print : "foo"
            Log.e(TAG, myObject.foo) // Print : ""
        }
    }
})
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,当我使用时documentChange.document.toObject(MyObject::class.java),我的对象被实例化,但内部字段未设置.我知道Firestore需要模型有一个空的构造函数.所以这是模型:

class MyObject {

    var foo: String = ""

    constructor(){}

}
Run Code Online (Sandbox Code Playgroud)

谁能告诉我我做错了什么?

谢谢

kotlin google-cloud-firestore

17
推荐指数
2
解决办法
4914
查看次数

Android:TextInputLayouts 总是有一个错误图标

我注意到几天以来,我所有的 TextInputLayouts 总是启用“错误感叹号”。我已经很长时间没有对那些 TextInputLayouts 进行任何更改,所以我真的不明白发生了什么。

这是它的外观截图:

你知道这个问题的根源是什么吗?TextInputLayouts 最近有什么变化吗?

非常感谢您提前

编辑

这是相关代码: .xml 文件非常简单。它是一个 TextInputLayouts 和 EditTexts 列表,如下所示:

<com.google.android.material.textfield.TextInputLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="@dimen/default_margin"
    android:layout_marginTop="@dimen/default_margin"
    android:layout_marginRight="@dimen/default_margin">

    <com.google.android.material.textfield.TextInputEditText
        android:id="@+id/txtAddressTitle"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/PROFILE_SCREEN_ADDRESS_INPUT_TITLE"
        android:inputType="textPersonName|textCapWords" />

</com.google.android.material.textfield.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)

此外,我的 Kotlin 代码中绝对没有提到 setError()

android android-textinputlayout

14
推荐指数
2
解决办法
6164
查看次数

AsyncTask:未调用doInBackground

我有一个问题AsyncTask.有时该doInBackground()方法不会被调用onPreExecute().

我知道这个问题被多次询问,但给定的答案对我不起作用.

这是我的代码的一部分:

AsyncTask<Void, Void, Void> asyncTask = new AsyncTask<Void, Void, Void>(){

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        Log.e("AsyncTask", "onPreExecute");
    }

    @Override
    protected Void doInBackground(Void... params) {
        Log.e("AsyncTask", "doInBackground");
        return null;
    }

    protected void onPostExecute(Void result) {
        Log.e("AsyncTask", "onPostExecute");
    };

};

if(Build.VERSION.SDK_INT >= 11)
    asyncTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
else
    asyncTask.execute();
Run Code Online (Sandbox Code Playgroud)

如您所见,我检查Android版本是否=> HoneyComb并在池执行器中执行任务,如果它是真的.即使有这种"技巧",有时doInBackground()也不会被称为.

有人有同样的问题或知道问题是什么?

谢谢

android android-asynctask

11
推荐指数
1
解决办法
1万
查看次数

Flutter插件:从Android BroadcastReceiver发送数据到Flutter代码

我正在开发一个 Flutter 插件(仅适用于 Android),当设备连接到特定的蓝牙设备时,它会自动执行 Flutter 任务。

以下是我在插件的Android端所做的事情:

  1. 在清单中,我注册了一个BroadcastReceiver监听蓝牙事件的函数。
<receiver android:name=".BluetoothBroadcastReceiver">
    <intent-filter>
        <action android:name="android.bluetooth.device.action.ACL_CONNECTED" />
        <action android:name="android.bluetooth.device.action.ACL_DISCONNECTED" />
        <action android:name="android.bluetooth.adapter.action.STATE_CHANGED" />
    </intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)
  1. 在我的“FlutterPlugin”类中,我初始化EventChannel并设置了StreamHandler. 然后,我保留的函数EventSink中提供的的引用。这允许我将数据从插件的 Android 端发送到插件的 Flutter 端。onListenStreamHandler
class BluetoothPlugin : FlutterPlugin {

    override fun onAttachedToEngine(flutterPluginBinding: FlutterPlugin.FlutterPluginBinding) {
        EventChannel(flutterPluginBinding.binaryMessenger, "event_channel_bluetooth_event")
            .setStreamHandler(object : StreamHandler {

                override fun onListen(arguments: Any?, eventSink: EventChannel.EventSink) {
                    BluetoothPlugin.eventSink = eventSink
                }

                override fun onCancel(arguments: Any?) {}

        })
    }

    companion object {
        var eventSink: EventChannel.EventSink? = …
Run Code Online (Sandbox Code Playgroud)

android broadcastreceiver flutter flutter-plugin

10
推荐指数
1
解决办法
2031
查看次数

Firebase性能监控和改造

我在其中一个项目中集成了Firebase性能监控功能.在该项目中,我使用Retrofit来管理我的网络请求.

遗憾的是,Firebase Performance的"网络请求"选项卡中没有显示通过Retrofit提出的任何请求.

以下是我看到的唯一内容:

Firebase性能监控

有人可以告诉我,为了在Firebase Performance中查看我的Retrofit管理的网络请求,我需要做些什么吗?

谢谢

android firebase retrofit2 firebase-performance

7
推荐指数
1
解决办法
2213
查看次数

Firebase云功能 - 更改Firestore设置

我正在使用Firebase云功能,从最近开始,日志会显示以下消息:

存储在Firestore中的Date对象的行为将发生变化,您的应用程序可能会发生变化.要隐藏此警告并确保您的应用不会中断,您需要在调用任何其他Cloud Firestore方法之前将以下代码添加到您的应用中:

const firestore = new Firestore();
const settings = {/* your settings... */ timestampsInSnapshots: true};
firestore.settings(settings);
Run Code Online (Sandbox Code Playgroud)

问题是,当我将这段代码添加到我的函数文件中时,每次尝试部署时都会出现此错误:

ReferenceError: Firestore is not defined
Run Code Online (Sandbox Code Playgroud)

有人可以帮我找到可能出错的地方吗?

(我是否需要在package.json文件中添加Firestore依赖?即使我不需要这样做而我已经使用了Firestore功能?)

谢谢

firebase google-cloud-functions google-cloud-firestore

7
推荐指数
1
解决办法
2061
查看次数

Flutter有很多嵌套的小部件很不好吗?

我在Android开发方面拥有丰富的背景知识,现在正尝试使用Flutter开发我的第一个应用程序。

在Android社区中,众所周知,嵌套视图太多是很糟糕的。这对性能不利。(这就是ConstraintLayout存在的原因之一)

但是,在许多Flutter教程中,我看到人们嵌套了许多小部件。

有人可以确认使用Flutter嵌套窗口小部件不是问题吗?如果我这样做会导致我的应用程序性能下降吗?

提前致谢

flutter flutter-layout

7
推荐指数
2
解决办法
970
查看次数

更改活动时,Android Immersive模式会重置

我在使用沉浸式模式时遇到了问题.以下是我对所有活动的代码:

 @Override
 public void onWindowFocusChanged(boolean hasFocus) {
     super.onWindowFocusChanged(hasFocus);
     if (hasFocus) {
         getWindow().getDecorView().setSystemUiVisibility(
             View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                 | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                 | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                 | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                 | View.SYSTEM_UI_FLAG_FULLSCREEN
                 | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
         );
     }
 }
Run Code Online (Sandbox Code Playgroud)

navigationBarstatusBar是不可见的,这是件好事.

问题是,每次我去另一个活动,navigationBar出现,然后消失.我希望那navigationBar不是那样的.

android android-activity android-immersive

6
推荐指数
2
解决办法
3517
查看次数