在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?
谢谢
我注意到Activity
该类有两种不同的方法来获取String资源.这可以通过使用:
getString(int resId)
:从应用程序包的默认字符串表中返回本地化字符串.
getResources().getString(int id)
:返回与特定资源ID关联的字符串值.它将被删除任何样式的文本信息.
我不明白两种方法之间的区别.有人能告诉我吗?
我尝试在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)
谁能告诉我我做错了什么?
谢谢
我注意到几天以来,我所有的 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()。
我有一个问题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()
也不会被称为.
有人有同样的问题或知道问题是什么?
谢谢
我正在开发一个 Flutter 插件(仅适用于 Android),当设备连接到特定的蓝牙设备时,它会自动执行 Flutter 任务。
以下是我在插件的Android端所做的事情:
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)
EventChannel
并设置了StreamHandler
. 然后,我保留的函数EventSink
中提供的的引用。这允许我将数据从插件的 Android 端发送到插件的 Flutter 端。onListen
StreamHandler
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) 我在其中一个项目中集成了Firebase性能监控功能.在该项目中,我使用Retrofit来管理我的网络请求.
遗憾的是,Firebase Performance的"网络请求"选项卡中没有显示通过Retrofit提出的任何请求.
以下是我看到的唯一内容:
有人可以告诉我,为了在Firebase Performance中查看我的Retrofit管理的网络请求,我需要做些什么吗?
谢谢
我正在使用Firebase云功能,从最近开始,日志会显示以下消息:
存储在Firestore中的Date对象的行为将发生变化,您的应用程序可能会发生变化.要隐藏此警告并确保您的应用不会中断,您需要在调用任何其他Cloud Firestore方法之前将以下代码添加到您的应用中:
Run Code Online (Sandbox Code Playgroud)const firestore = new Firestore(); const settings = {/* your settings... */ timestampsInSnapshots: true}; firestore.settings(settings);
问题是,当我将这段代码添加到我的函数文件中时,每次尝试部署时都会出现此错误:
ReferenceError: Firestore is not defined
Run Code Online (Sandbox Code Playgroud)
有人可以帮我找到可能出错的地方吗?
(我是否需要在package.json文件中添加Firestore依赖?即使我不需要这样做而我已经使用了Firestore功能?)
谢谢
我在Android开发方面拥有丰富的背景知识,现在正尝试使用Flutter开发我的第一个应用程序。
在Android社区中,众所周知,嵌套视图太多是很糟糕的。这对性能不利。(这就是ConstraintLayout存在的原因之一)
但是,在许多Flutter教程中,我看到人们嵌套了许多小部件。
有人可以确认使用Flutter嵌套窗口小部件不是问题吗?如果我这样做会导致我的应用程序性能下降吗?
提前致谢
我在使用沉浸式模式时遇到了问题.以下是我对所有活动的代码:
@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)
该navigationBar
和statusBar
是不可见的,这是件好事.
问题是,每次我去另一个活动,navigationBar
出现,然后消失.我希望那navigationBar
不是那样的.