小编r12*_*597的帖子

无法将数据写入 Firebase 数据库 Android

我正在尝试将测试数据发送到我的 firebase 数据库。在 android studio 中,我选择了 Tools > Firebase > Assistant FB > Realtime Database > Connect your app to Firebase(Connected) > Add the realtime database to your app(正确设置依赖项)。

然后我在我的活动中添加示例代码:

FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference("message");

myRef.setValue("Hello, World!");
Run Code Online (Sandbox Code Playgroud)

我在firebase中设置了规则:

{
  "rules": {
    ".read": true,
    ".write": true
  }
}
Run Code Online (Sandbox Code Playgroud)

但数据不会添加到实时数据库中。也许我需要一些许可?在 logcat AS 中没有任何错误

更新:

不添加数据

    private DatabaseReference mDatabase;
 mDatabase = FirebaseDatabase.getInstance().getReference();
        mDatabase.child("message").setValue("Hello, World!");
Run Code Online (Sandbox Code Playgroud)

也不要添加数据

Message mess = new Message("hello");
        mDatabase.child("message").setValue(mess);
Run Code Online (Sandbox Code Playgroud)

班级留言

@IgnoreExtraProperties
public class Message {

    public String mes; …
Run Code Online (Sandbox Code Playgroud)

android firebase firebase-realtime-database

6
推荐指数
1
解决办法
2620
查看次数

pydrive 只从列表中获取文件夹

我将库pydrive用于谷歌驱动器。现在我需要在谷歌驱动器中获取所有文件夹(根、父、子)名称。
我发现了这个:

self.drive.ListFile().GetList()
Run Code Online (Sandbox Code Playgroud)

但它返回所有文件。我可以只获取谷歌驱动器中的所有文件夹吗?

python google-drive-api pydrive

6
推荐指数
1
解决办法
2244
查看次数

django“str”对象没有属性“_meta”

对不起我的英语不好。我有来自另一台服务器的一些数据,但我需要像 JSON 一样输出这些数据。

如果我在控制台中打印响应:

{
    'responseStatus': {
        'status': [],
    },
    'modelYear': [
        1981,
        1982
      
    ]
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我像有错误一样返回此响应HttpResponse

AttributeError:“str”对象没有属性“_meta”

这是我的代码:

data = serializers.serialize('json', response, ensure_ascii=False)
return HttpResponse(data, content_type="application/json")
Run Code Online (Sandbox Code Playgroud)

更新:

我尝试过这个:

from django.http import JsonResponse

def some_view(request):
    ...
    return JsonResponse(response, safe=False)
Run Code Online (Sandbox Code Playgroud)

但有错误:

“ModelYears”类型的对象不可 JSON 序列化

更新:

我确实是这样的:

import json
from django.http import JsonResponse

def some_view(request):
        ...
        return JsonResponse(json.loads(response))
Run Code Online (Sandbox Code Playgroud)

但有错误:

the JSON object must be str, bytes or bytearray, not 'ModelYears'
Run Code Online (Sandbox Code Playgroud)

python django json

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

search包含数组python中的字符串

我有一个像这样的字符串search = 'hello',我需要检查所有数组,看看是否包含hello.
例如:

"hello" == "123hello123" | true
"hello" == "aasdasdasd123hello123" | true
"hello" == "123123hello" | true
Run Code Online (Sandbox Code Playgroud)

我需要搜索我的代码

list_all_files_in_google_drive - 它是我的所有文件名数组

filename - 名称文件,需要检查是否存在于谷歌驱动器中

if not any(file['title'] == filename for file in list_all_files_in_google_drive):
   print('file not exist')
Run Code Online (Sandbox Code Playgroud)

我的代码不起作用,因为它的工作方式如下:

"hello" == "123hello123" | false
"hello" == "aasdasdasd123hello123" | false
"hello" == "123123hello" | false
"hello" == "hello" | true
Run Code Online (Sandbox Code Playgroud)

我需要它像这样工作:

"hello" == "123hello123" | true
"hello" == "aasdasdasd123hello123" | true
"hello" == "123123hello" | true
"hello" …
Run Code Online (Sandbox Code Playgroud)

python arrays

3
推荐指数
2
解决办法
421
查看次数

Firebase 远程配置,无法获得价值。安卓

我创建了一些用于学习 Firebase 远程配置的测试项目。这是 firebase https://monosnap.com/file/0xgQCL7oo7lyOjBs8CG3kZO0szBXh6 中的设置。波纹管我的代码:

final FirebaseRemoteConfig config = FirebaseRemoteConfig.getInstance();
            FirebaseRemoteConfigSettings configSettings = new FirebaseRemoteConfigSettings.Builder()
                    .setDeveloperModeEnabled(BuildConfig.DEBUG)
                    .build();
            config.setConfigSettings(configSettings);

            String onlineVersion = FirebaseRemoteConfig.getInstance().getString("android_current_version");// empty string
Run Code Online (Sandbox Code Playgroud)

我不知道为什么我不能从 firebase 获得价值

android firebase firebase-remote-config

3
推荐指数
1
解决办法
3035
查看次数

RxJava 请求列表

对不起我的英语不好。我有 id 类别列表,我确实提出了这样的要求:

for(Product cat:all_cats) {
            new DefaultMediator()
                    .getProductsInCatalog(cat.getID())
                    .timeout(15, TimeUnit.SECONDS)
                    .subscribeOn(Schedulers.io())
                    .observeOn(AndroidSchedulers.mainThread())
                    .subscribe(list_products -> {
                                //do something
                            },
                            throwable -> {
                                Log.e("asd", "asd");
                            });
        }
Run Code Online (Sandbox Code Playgroud)

我觉得不好。我如何使用 rxJava 发送请求列表?

android request rx-java

2
推荐指数
1
解决办法
535
查看次数

上传大型视频文件使用Retrofit(Android)有OutOfMemoryError

对不起我的英语不好。我尝试在服务器上上传大型视频文件,此文件超过50 mb。当我上传小文件时,一切正常。在清单中,我设置了它android:largeHeap="true"android:hardwareAccelerated="false"没有帮助我。下面是我的代码:

接口

@Multipart
@POST("/api/upload")
Observable<UploadVideoResponse> uploadVideo(@Header("Authorization") String userToken,
                                            @Part MultipartBody.Part video);
Run Code Online (Sandbox Code Playgroud)

方法返回文件:

public static MultipartBody.Part getMultipartVideoBody(String pathVideo) {
    try {
        File videoFile = getFile(pathVideo);
        RequestBody videoBody = RequestBody.create(MediaType.parse("video/*"), videoFile);
        String fileName = videoFile.getName();
        return MultipartBody.Part.createFormData("video", fileName, videoBody);
    }catch (Exception e){
        Log.e("File ", e.getMessage());
        return null;
    }
}
Run Code Online (Sandbox Code Playgroud)

在服务器上上传方法

new DefaultApi().uploadVideo(
                Utils.getHeaderToken(),
                Utils.getMultipartVideoBody(pathVideo)
        ).subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .doOnSubscribe(videoView::showLoading)
                .doOnTerminate(videoView::hideLoading)
                .subscribe(data -> {
                            videoView.setData(data);
                        }
                        , throwable -> {

                        }
                );
    }
Run Code Online (Sandbox Code Playgroud)

错误:

抛出OutOfMemoryError“未能分配100390006字节分配,其中16777216个空闲字节和92MB直到OOM”

完整的堆栈跟踪

09-11 03:53:00.571 6724-6976 / …

upload android retrofit

2
推荐指数
1
解决办法
1344
查看次数

openpyxl 'Worksheet' 对象没有属性 'write'(python)

对不起我的英语不好。我需要打开一个 xlsx 文档并在最后一个位置写入新值。但我不明白该怎么做。我的算法是这样工作的:

  1. 打开 xlsx l_workbook = load_workbook(old_log_tmp_path)
  2. 从那里获取所有价值

    代码:

    def iter_rows(ws):
        for row in ws.iter_rows():
            yield [cell for cell in row]
    
    Run Code Online (Sandbox Code Playgroud)
  3. 创建新的 xlsm 文件

    代码:

    workbook = xlsxwriter.Workbook(tf.name)
    worksheet = workbook.add_worksheet()
    
    Run Code Online (Sandbox Code Playgroud)
  4. 将所有值复制l_workbookworkbook -> worksheet


但我认为这是不对的,我认为它们以简单的方式存在。像这样:

 l_workbook = load_workbook('EX2cRqM7xi1D.xlsx')
 sheet = l_workbook.get_sheet_names()[0]
 worksheet = l_workbook.get_sheet_by_name(sheet)
 worksheet.write(1, 1, "TEST")
Run Code Online (Sandbox Code Playgroud)

运行该脚本给了我以下错误:

AttributeError: 'Worksheet' object has no attribute 'write'
Run Code Online (Sandbox Code Playgroud)

我的问题是:如何打开 xlsm 文件并向其添加新值(使用 openpyxl)?

更新:

我试试这个代码,但不起作用

import openpyxl

    workbook = openpyxl.load_workbook('tmp3by148hj.xlsx')
    ws = workbook.worksheets[0]

    ws.cell(row=1, column=1).value = 'TEST'
Run Code Online (Sandbox Code Playgroud)

python excel parsing openxls

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